跳到主要内容

Python OpenAI SDK

OpenAI Python SDK 可以通过自定义 base_url 连接 Bita API,适合 Python 脚本、Web 服务和后端应用。

安装

python -m pip install --upgrade openai

创建客户端

from openai import OpenAI

client = OpenAI(
api_key="YOUR_BITA_API_KEY",
base_url="https://www.bita-api.com/v1",
)

OpenAI SDK 的 base_url 需要包含 /v1。SDK 会在其后追加 /models/chat/completions/responses

不要重复添加 /v1

请使用 https://www.bita-api.com/v1,不要填写完整的 /v1/chat/completions 地址,也不要配置成 /v1/v1

查询模型

models = client.models.list()

for model in models.data:
print(model.id)

从输出中复制模型 ID,替换后续示例中的 YOUR_MODEL_ID

Chat Completions

completion = client.chat.completions.create(
model="YOUR_MODEL_ID",
messages=[
{
"role": "system",
"content": "你是一个简洁、准确的助手。",
},
{
"role": "user",
"content": "请用一句话介绍 Bita API。",
},
],
)

print(completion.choices[0].message.content)

Chat Completions 适合模型广场中标记为 Chat 的模型,也是多数 OpenAI 兼容工具使用的接口。

Responses

只有模型广场中支持 Response 端点的模型才能使用 Responses API。

response = client.responses.create(
model="YOUR_MODEL_ID",
instructions="使用简体中文简洁回答。",
input="请用一句话介绍 Bita API。",
)

print(response.output_text)

output_text 是 SDK 提供的便捷属性。需要处理工具调用等复杂输出时,应遍历 response.output

Chat Completions 流式输出

stream = client.chat.completions.create(
model="YOUR_MODEL_ID",
messages=[
{
"role": "user",
"content": "请介绍流式响应的作用。",
}
],
stream=True,
)

for chunk in stream:
if not chunk.choices:
continue

text = chunk.choices[0].delta.content
if text:
print(text, end="", flush=True)

print()

Responses 流式输出

stream = client.responses.create(
model="YOUR_MODEL_ID",
input="请介绍流式响应的作用。",
stream=True,
)

for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)

print()

调整超时和重试

可以为单次请求设置超时或重试次数:

completion = client.with_options(
timeout=120.0,
max_retries=2,
).chat.completions.create(
model="YOUR_MODEL_ID",
messages=[
{
"role": "user",
"content": "你好。",
}
],
)

已经开始返回内容的流式请求不应盲目自动重试,否则可能产生重复输出和额外费用。

读取原始数据

SDK 返回的是模型对象,而不是普通字典。需要查看完整内容时可以转换:

print(completion.model_dump_json(indent=2))

常见问题

现象建议检查
401AuthenticationErrorBita API 密钥是否完整,是否误用了登录密码
404NotFoundErrorbase_url 是否为 https://www.bita-api.com/v1,模型 ID 是否正确
Responses 请求失败模型是否支持 Response 端点
参数不受支持当前模型或渠道可能不支持该可选参数,移除后重试
APITimeoutError增加超时并检查模型响应时间和网络状态

OpenAI SDK 只能直接使用 OpenAI 兼容接口。调用 Claude 或 Gemini 原生格式时,请使用对应 SDK 文档。

下一步:Node.js OpenAI SDK