OpenAI 兼容接口
本平台提供完整的 OpenAI 兼容接口,支持 Chat Completions 和 Responses 两种 API 格式,可直接使用 OpenAI SDK 接入。
1. 基础信息
- API 基础地址:
https://router.qingting.work - Chat Completions:
POST /v1/chat/completions - Responses API:
POST /v1/responses
2. 鉴权方式
使用 Bearer Token 认证:
Authorization: Bearer your-api-key
3. Chat Completions API
请求示例
bash
curl -X POST https://router.qingting.work/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
}'
使用 OpenAI SDK
python
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://router.qingting.work/v1"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
typescript
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'your-api-key',
baseURL: 'https://router.qingting.work/v1',
});
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' },
],
});
console.log(response.choices[0].message.content);
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名称 |
messages | array | 是 | 对话消息数组 |
stream | boolean | 否 | 是否启用流式输出,默认 false |
max_tokens | integer | 否 | 最大输出 token 数 |
temperature | number | 否 | 采样温度 |
top_p | number | 否 | 核采样参数 |
tools | array | 否 | 工具定义列表(Function Calling) |
tool_choice | string/object | 否 | 工具选择策略 |
消息格式
json
{
"role": "user",
"content": "Hello!"
}
role 支持:system、user、assistant、tool
content 支持文本字符串或多模态数组(文本 + 图片):
json
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/image.png"}}
]
}
响应格式
json
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1700000000,
"model": "gpt-4o",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 10,
"total_tokens": 30
}
}
流式输出
设置 stream: true 启用 SSE 流式输出:
python
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
4. Responses API
Responses API 是 OpenAI 推出的新一代接口格式,支持多轮对话状态管理。
请求示例
bash
curl -X POST https://router.qingting.work/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{
"model": "gpt-4o",
"input": "Hello!"
}'
使用 OpenAI SDK
python
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://router.qingting.work/v1"
)
response = client.responses.create(
model="gpt-4o",
input="Hello!"
)
print(response.output_text)
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名称 |
input | string/array | 是 | 输入内容,支持文本或消息数组 |
instructions | string | 否 | 系统指令(等同于 system message) |
stream | boolean | 否 | 是否启用流式输出 |
max_output_tokens | integer | 否 | 最大输出 token 数 |
temperature | number | 否 | 采样温度 |
top_p | number | 否 | 核采样参数 |
tools | array | 否 | 工具定义列表 |
tool_choice | string/object | 否 | 工具选择策略 |
previous_response_id | string | 否 | 上一轮响应 ID,用于多轮对话 |
metadata | object | 否 | 自定义元数据 |
多轮对话
通过 previous_response_id 实现多轮对话,无需手动管理消息历史:
python
# 第一轮
r1 = client.responses.create(
model="gpt-4o",
input="My name is Alice."
)
# 第二轮,自动携带上下文
r2 = client.responses.create(
model="gpt-4o",
input="What's my name?",
previous_response_id=r1.id
)
print(r2.output_text) # "Your name is Alice."
其他接口
| 接口 | 方法 | 说明 |
|---|---|---|
/v1/responses/:id | GET | 查询响应详情 |
/v1/responses/:id/input_items | GET | 获取输入项列表 |
/v1/responses/:id/cancel | POST | 取消正在进行的响应 |
5. 错误处理
所有接口使用统一的错误格式:
json
{
"error": {
"message": "错误描述",
"type": "error_type"
}
}
| HTTP 状态码 | 说明 |
|---|---|
| 401 | 认证失败:API Key 无效、已过期或未提供 |
| 402 | 余额不足:钱包余额或 API Key 额度不足 |
| 400 | 请求参数错误 |
| 404 | 资源不存在(如 response ID 无效或已过期) |
| 502 | 服务错误 |
6. 注意事项
- 可用模型列表请在「模型广场」页面查看
- 流式输出使用 Server-Sent Events (SSE) 协议
- Responses API 的会话状态默认保留 24 小时
- 所有请求均会计费,计费规则请参考「模型广场」中的价格信息