OpenAI 兼容接口
常用的文本调用有 Chat Completions 和 Responses 两种方式。按客户端要求及模型支持的接口选择。
| 接口 | 请求路径 | 输入字段 | Python SDK 方法 |
|---|---|---|---|
| Chat Completions | POST /v1/chat/completions | messages | client.chat.completions.create() |
| Responses | POST /v1/responses | input | client.responses.create() |
两种接口都使用 Authorization: Bearer <API Key> 认证。SDK 的基础地址统一填写 https://api.beiapi.cn/v1。
具体模型支持哪种接口,以模型广场和控制台信息为准。兼容接口不代表每个模型都支持 OpenAI 的全部参数或内置工具。
Chat Completions
通过 messages 传入对话消息,适用于要求填写 Chat Completions 接口的客户端。
cURL
先将密钥保存在环境变量 BEIAPI_API_KEY 中,并把示例中的模型名称替换为实际可用的名称。
bash
curl https://api.beiapi.cn/v1/chat/completions \
-H "Authorization: Bearer $BEIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "从模型广场复制模型名称",
"messages": [{"role": "user", "content": "你好"}],
"stream": false
}'Python
安装 SDK:pip install -U openai。
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["BEIAPI_API_KEY"],
base_url="https://api.beiapi.cn/v1",
)
completion = client.chat.completions.create(
model="从模型广场复制模型名称",
messages=[{"role": "user", "content": "你好"}],
)
print(completion.choices[0].message.content)Responses
通过 input 传入内容,请求路径是复数形式的 /v1/responses。
cURL
bash
curl https://api.beiapi.cn/v1/responses \
-H "Authorization: Bearer $BEIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "从模型广场复制模型名称",
"input": "你好",
"stream": false,
"store": false
}'Python
使用同一个 OpenAI SDK,改用 responses.create():
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["BEIAPI_API_KEY"],
base_url="https://api.beiapi.cn/v1",
)
response = client.responses.create(
model="从模型广场复制模型名称",
input="你好",
store=False,
)
print(response.output_text)两种接口的区别
- 输入不同:Chat Completions 使用
messages;Responses 使用input,可传入文本或消息列表。 - 输出不同:Chat Completions 的文本通常在
choices[0].message.content;Responses 返回output项列表,Python SDK 可用response.output_text汇总文本。 - 流式事件不同:两者都可设置
stream: true,但事件结构不同,解析代码需要与接口匹配。
切换接口时,需要同时调整请求路径、输入参数和响应读取方式。接口格式可参考 OpenAI 官方迁移说明。