← 返回文档列表

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);

请求参数

参数类型必填说明
modelstring模型名称
messagesarray对话消息数组
streamboolean是否启用流式输出,默认 false
max_tokensinteger最大输出 token 数
temperaturenumber采样温度
top_pnumber核采样参数
toolsarray工具定义列表(Function Calling)
tool_choicestring/object工具选择策略

消息格式

json
{
  "role": "user",
  "content": "Hello!"
}

role 支持:systemuserassistanttool

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)

请求参数

参数类型必填说明
modelstring模型名称
inputstring/array输入内容,支持文本或消息数组
instructionsstring系统指令(等同于 system message)
streamboolean是否启用流式输出
max_output_tokensinteger最大输出 token 数
temperaturenumber采样温度
top_pnumber核采样参数
toolsarray工具定义列表
tool_choicestring/object工具选择策略
previous_response_idstring上一轮响应 ID,用于多轮对话
metadataobject自定义元数据

多轮对话

通过 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/:idGET查询响应详情
/v1/responses/:id/input_itemsGET获取输入项列表
/v1/responses/:id/cancelPOST取消正在进行的响应

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 小时
  • 所有请求均会计费,计费规则请参考「模型广场」中的价格信息