12API logo12API
API 手册

Chat Completions

OpenAI 兼容聊天补全接口

Chat Completions 是最常用的 OpenAI 兼容接口,适合聊天客户端、OpenAI SDK、LangChain、LlamaIndex 等生态工具。

新项目建议

OpenAI 官方建议新项目优先评估 Responses API,以使用更新的多模态、工具和状态管理能力。Chat Completions 更适合兼容已有客户端和生态工具。

接口概览

项目说明
方法POST
路径/v1/chat/completions
Base URLhttps://cdn.12ai.org/v1
请求格式application/json
认证Authorization: Bearer $API_KEY

请求体

参数类型必填说明
modelstring模型名称,例如 gpt-5.1
messagesarray对话消息数组
streamboolean是否流式返回,默认 false
temperaturenumber随机性,值越高越发散
top_pnumber核采样参数
max_completion_tokensinteger最大生成 token 数,包含可见输出和推理 token
toolsarray模型可调用的工具,例如函数工具
tool_choicestring | object工具调用策略,例如 autononerequired
response_formatobject输出格式,常用于 JSON mode 或 Structured Outputs
storeboolean是否存储该次 Chat Completion 以便后续查询

messages

参数类型必填说明
rolestringsystemdeveloperuserassistant
contentstring | array文本内容,或多模态内容数组

max_tokens 已不推荐

OpenAI 官方已将旧字段 max_tokens 标记为不推荐,新的聊天补全请求优先使用 max_completion_tokens

请求示例

curl https://cdn.12ai.org/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.1",
    "messages": [
      {"role": "user", "content": "用一句话解释 API 网关是什么"}
    ]
  }'
from openai import OpenAI

client = OpenAI(
    api_key="sk-xxx",
    base_url="https://cdn.12ai.org/v1",
)

response = client.chat.completions.create(
    model="gpt-5.1",
    messages=[
        {"role": "user", "content": "用一句话解释 API 网关是什么"}
    ],
)

print(response.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-xxx",
  baseURL: "https://cdn.12ai.org/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-5.1",
  messages: [
    { role: "user", content: "用一句话解释 API 网关是什么" },
  ],
});

console.log(response.choices[0].message.content);

响应结构

字段类型说明
idstring响应 ID
objectstring对象类型,通常为 chat.completion
createdinteger创建时间戳
modelstring实际调用的模型
choicesarray模型输出列表
usageobjecttoken 用量统计
service_tierstring实际使用的服务层级,可能为空
system_fingerprintstring后端配置指纹,可能为空

choices

字段类型说明
indexinteger输出序号
message.rolestring通常为 assistant
message.contentstring模型回复文本
message.tool_callsarray工具调用结果,未触发时为空
finish_reasonstring停止原因,例如 stoplengthtool_calls

响应示例

{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "created": 1760000000,
  "model": "gpt-5.1",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "API 网关是统一接收、鉴权并转发 API 请求的入口层。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 18,
    "total_tokens": 38
  }
}

常见问题

问题处理方式
401检查 Header 是否写成 Authorization: Bearer sk-xxx
404检查 Base URL 是否包含 /v1,以及模型名是否存在
无法流式输出确认请求体设置了 "stream": true,客户端也支持 SSE
输出被截断适当增加 max_completion_tokens

更多 OpenAI 兼容参数可以参考 OpenAI API Reference

On this page