用 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 流。idstringobjectstringmodelstringchoicesobject[]indexintegermessageobjectfinish_reasonstring | null{
"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 时按它退避。