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))
常见问题
| 现象 | 建议检查 |
|---|---|
401 或 AuthenticationError | Bita API 密钥是否完整,是否误用了登录密码 |
404 或 NotFoundError | base_url 是否为 https://www.bita-api.com/v1,模型 ID 是否正确 |
| Responses 请求失败 | 模型是否支持 Response 端点 |
| 参数不受支持 | 当前模型或渠道可能不支持该可选参数,移除后重试 |
APITimeoutError | 增加超时并检查模型响应时间和网络状态 |
OpenAI SDK 只能直接使用 OpenAI 兼容接口。调用 Claude 或 Gemini 原生格式时,请使用对应 SDK 文档。
下一步:Node.js OpenAI SDK。