用 Chat Completions 生成

POST /v1/chat/completions

OpenAI Chat Completions 兼容的生成接口,基于 messages[]。文本读 choices[].message.content;支持工具的响应可能改带 tool_calls。内容项可以是 text、带 data URL 的 image_url,或带 base64 视频字节的 input_video——后者只在带原生视频支持的 macOS 与 Linux 构建上可用,还要求服务所在机器有 ffmpeg 和 ffprobe。流式用 chat.completion.chunk 事件,以 data: [DONE] 结束;不要把这个解析器套到其他协议上。每个接口都要求模型的 supported_endpoints 精确包含该路径。这几个接口转发所选模型自己的协议,可选参数和响应细节会随本地 worker 或远程供应方不同。本地模型把输入留在设备上;配置为远程的模型会收到发给它的请求。见 /docs/api-language#chat 、/docs/api#video-input 和 /docs/api#context-window 。

指南与示例语言与视觉全部接口

请求体

application/json必填

modelstring必填文本模型 ID,从模型清单里取。它的 supported_endpoints 必须包含这个路径。
messagesobject[]必填按时间顺序排列的对话轮次,最早的在前。
rolestring必填消息角色,例如 user 或 assistant。
contentstring | object[]必填消息文本,或者用内容项数组传多模态输入。
max_tokensinteger生成 token 的上限。不传则用模型自己的上限。
streambooleantrue 返回 SSE 事件流,而不是单个 JSON 响应。

响应

200补全结果;stream: true 时是 SSE 流。
idstring
objectstringchat.completion
modelstring
choicesobject[]
indexinteger
messageobject
finish_reasonstring | null
JSON
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "model": "Qwen/Qwen3.5-4B",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello!"
      },
      "finish_reason": "stop"
    }
  ]
}
400请求不合法。先改请求再重试:error.code 用于程序判断,error.param 用于定位是哪个输入。
401API Key 缺失或无效。
403Host 或 Origin 不被允许,或 License 被拒。按 error.code 区分这两种情况。
413请求体超过 512 MiB。
503所需的本地模型仍在准备(model_downloading),或服务正忙(service_busy)。带 Retry-After 时按它退避。