Skip to content

POST /v1/chat/completions

对话补全主接口。完全兼容 OpenAI 协议,可在流式与非流式之间切换,支持 function calling 与多模态内容。

对话补全主接口。完全兼容 OpenAI 协议,可在流式与非流式之间切换,支持 function calling 与多模态内容。

POSThttps://www.kukuai.fyi/api-proxy/china/v1/chat/completions

所有请求需在 HTTP Header 中携带 `Authorization: Bearer ``<API_KEY>```。请在 https://kukuai.fyi 控制台「API Keys」页面创建一把 Key 后填入。

请求体

请求体为 JSON,常用字段如下:

字段类型必填说明
modelstring必填要调用的模型 ID,例如 claude-opus-4-7。可用模型清单通过 GET /v1/models 实时获取,不同账号可见的模型由控制台权限决定。
messagesarray<Message>必填多轮对话历史,按时间顺序排列。每个元素包含 rolecontent
streamboolean可选是否以 SSE 流式返回。设为 true 时,响应是 text/event-stream,每行 data: {...},最终以 data: [DONE] 结束。默认值:false
temperaturenumber可选采样温度,范围 0-2,越大越发散。默认值:1
top_pnumber可选核采样阈值,范围 0-1。默认值:1
max_tokensinteger可选本次生成的最大 token 数。模型自身的上下文上限由具体模型决定。
stopstringstring[]可选
presence_penaltynumber可选范围 -2.0 - 2.0,正值促进话题多样性。默认值:0
frequency_penaltynumber可选范围 -2.0 - 2.0,正值抑制重复词。默认值:0
response_formatobject可选指定输出结构。常用:{ "type": "json_object" }。是否支持取决于模型。
toolsarray<Tool>可选Function calling 工具定义数组。
tool_choicestringobject可选
userstring可选终端用户标识,建议透传以便审计与风控。

Message 对象

字段类型必填说明
role`"system""user""assistant"
contentstringarray<Part>必填
namestring可选可选的角色名,常用于多用户对话场景区分发言者。
tool_call_idstring可选role = "tool" 时,标记这条消息是对哪一次 tool 调用的响应。

基础调用示例

下面是一次最简单的非流式调用:

request bodyjson

{
  "model": "claude-opus-4-7",
  "stream": false,
  "temperature": 0.7,
  "max_tokens": 1024,
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "用一句话介绍 kukuai.fyi"}
  ]
}
curl https://www.kukuai.fyi/api-proxy/china/v1/chat/completions \
  -H "Authorization: Bearer $KUKUAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "messages": [
      {"role": "user", "content": "用一句话介绍 kukuai.fyi"}
    ]
  }'

响应示例

非流式响应直接返回完整 JSON:

200 OKjson

{
  "id": "chatcmpl-9f3a2b8c1d4e5f6a",
  "object": "chat.completion",
  "created": 1730000000,
  "model": "claude-opus-4-7",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "kukuai.fyi 是一个统一的大模型 API 网关,OpenAI 兼容协议,多模型一站接入。"
      }
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 28,
    "total_tokens": 52
  }
}

响应字段

字段类型必填说明
idstring必填本次补全的唯一 ID,便于排障关联日志。
objectstring必填固定为 "chat.completion"
createdinteger必填响应生成时间,Unix 秒。
modelstring必填真正承担本次推理的模型 ID。
choicesarray<Choice>必填生成结果数组。每个 choice 含 index / message / finish_reason
usageobject必填本次调用的 token 统计:prompt_tokens / completion_tokens / total_tokens

流式响应

stream 置为 true 后,服务端会以text/event-stream 推送增量。每条事件是一行data: {...} JSON,最后以 data: [DONE] 结束。

curl -N https://www.kukuai.fyi/api-proxy/china/v1/chat/completions \
  -H "Authorization: Bearer $KUKUAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "stream": true,
    "messages": [{"role": "user", "content": "讲一个关于 API 网关的冷笑话"}]
  }'

响应片段(精简):

event-streamtext

data: {"id":"chatcmpl-9f3a","object":"chat.completion.chunk","created":1730000000,"model":"claude-opus-4-7","choices":[{"index":0,"delta":{"role":"assistant","content":""}}]}

data: {"id":"chatcmpl-9f3a","object":"chat.completion.chunk","created":1730000000,"model":"claude-opus-4-7","choices":[{"index":0,"delta":{"content":"kukuai.fyi"}}]}

data: {"id":"chatcmpl-9f3a","object":"chat.completion.chunk","created":1730000000,"model":"claude-opus-4-7","choices":[{"index":0,"delta":{"content":" 是一个统一的大模型 API 网关。"}}]}

data: {"id":"chatcmpl-9f3a","object":"chat.completion.chunk","created":1730000000,"model":"claude-opus-4-7","choices":[{"index":0,"finish_reason":"stop","delta":{}}]}

data: [DONE]

使用 tools / function calling

模型可以根据用户请求决定调用某个工具,并在响应中返回tool_calls。在收到调用后,由你的应用执行工具并把结果作为role: "tool" 消息回传给模型,再发起下一轮请求。

curl https://www.kukuai.fyi/api-proxy/china/v1/chat/completions \
  -H "Authorization: Bearer $KUKUAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "messages": [{"role": "user", "content": "上海今天天气怎么样?"}],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "查询某地的当前天气",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {"type": "string"}
          },
          "required": ["city"]
        }
      }
    }],
    "tool_choice": "auto"
  }'

错误处理

所有错误均以统一结构返回。HTTP 状态码遵循 OpenAI 协议惯例, 详细码表请参阅 错误码 页。

429 Too Many Requestsjson

{
  "error": {
    "type": "rate_limit_error",
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded for model claude-opus-4-7",
    "param": null
  }
}

统一 API 网关 · OpenAI Compatible