SDK 参考指南
OpenAI SDK 相容性
BazaarLink 与 OpenAI Python 和 Node.js SDK 完全相容。只需两项更改:
之前(直接使用 OpenAI)
1
2
3
4
5
6
7
8
9
10
from openai import OpenAI
client = OpenAI(
api_key="sk-..."
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[...]
)之后(使用 BazaarLink)
1
2
3
4
5
6
7
8
9
10
11
from openai import OpenAI
client = OpenAI(
base_url="https://bazaarlink.ai/api/v1",
api_key="sk-bl-YOUR_API_KEY"
)
response = client.chat.completions.create(
model="openai/gpt-4o", # add provider/
messages=[...]
)就是这样!
所有其他功能 — 串流、工具呼叫、结构化输出、非同步 — 完全相同。唯一的更改是 base_url、api_key,以及在模型 ID 前加上供应商前缀。
Python
安装
1
pip install openai同步
1
2
3
4
5
6
7
8
9
10
11
12
13
from openai import OpenAI
client = OpenAI(
base_url="https://bazaarlink.ai/api/v1",
api_key="sk-bl-YOUR_API_KEY",
)
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)非同步
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
base_url="https://bazaarlink.ai/api/v1",
api_key="sk-bl-YOUR_API_KEY",
)
async def main():
response = await client.chat.completions.create(
model="anthropic/claude-sonnet-4.6",
messages=[{"role": "user", "content": "Hello async world!"}],
)
print(response.choices[0].message.content)
asyncio.run(main())非同步串流
1
2
3
4
5
6
7
8
9
10
11
12
async def stream_chat():
stream = await client.chat.completions.create(
model="deepseek/deepseek-chat",
messages=[{"role": "user", "content": "Tell me a story"}],
stream=True,
)
async for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
asyncio.run(stream_chat())TypeScript / Node.js
安装
1
npm install openai基本用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://bazaarlink.ai/api/v1",
apiKey: process.env.BAZAARLINK_API_KEY,
});
async function chat(message: string): Promise<string> {
const response = await client.chat.completions.create({
model: "openai/gpt-4o",
messages: [{ role: "user", content: message }],
});
return response.choices[0].message.content ?? "";
}串流
1
2
3
4
5
6
7
8
9
const stream = await client.chat.completions.create({
model: "openai/gpt-4o",
messages: [{ role: "user", content: "Tell me a story" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}LangChain
透过设定 OpenAI 相容的 base URL,在 LangChain 中使用 BazaarLink。
1
2
3
4
5
6
7
8
9
10
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="https://bazaarlink.ai/api/v1",
api_key="sk-bl-YOUR_API_KEY",
model="anthropic/claude-sonnet-4.6",
)
response = llm.invoke("Explain BazaarLink in one sentence.")
print(response.content)LlamaIndex
在 LlamaIndex RAG 管线中使用 BazaarLink。LlamaIndex 支援 OpenAI 相容的 base URL,更改两个参数即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from llama_index.llms.openai import OpenAI
from llama_index.core import Settings
Settings.llm = OpenAI(
model="openai/gpt-4o",
api_base="https://bazaarlink.ai/api/v1",
api_key="sk-bl-YOUR_API_KEY",
)
# Now use LlamaIndex normally — it calls BazaarLink
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("./docs").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("What is this documentation about?")
print(response)Vercel AI SDK
在 Next.js 应用中将 Vercel AI SDK 与 BazaarLink 整合。支援串流、工具呼叫、结构化输出。
安装
1
npm install ai @ai-sdk/openai1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";
const bazaarlink = createOpenAI({
baseURL: "https://bazaarlink.ai/api/v1",
apiKey: "sk-bl-YOUR_API_KEY",
});
const { text } = await generateText({
model: bazaarlink("openai/gpt-4o"),
prompt: "Write a haiku about programming",
});
console.log(text);