Chat Completions
Chat Completions 适合已有 OpenAI 兼容客户端和基于 messages / choices 的应用。新建的代理或 Codex 工作流优先考虑 Responses API。
POST https://api.nexinfer.com/v1/chat/completionscurl https://api.nexinfer.com/v1/chat/completions \ -H "Authorization: Bearer $NEXINFER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "YOUR_MODEL_ID", "messages": [ {"role": "system", "content": "Answer concisely."}, {"role": "user", "content": "Reply with OK."} ] }'文本结果通常位于 choices[0].message.content。不同模型的多模态内容、推理字段和用量结构可能不同。
| 字段 | 用途 |
|---|---|
model |
Key 有权调用的模型 ID |
messages |
按角色排列的对话消息 |
stream |
启用 SSE 增量输出 |
tools / tool_choice |
声明工具及选择行为 |
temperature |
采样控制;模型可能限制该字段 |
max_tokens |
兼容客户端的输出限制字段;模型支持情况不同 |
NexInfer 保留原始 system、messages、tools、tool_choice、temperature 和 max_tokens。字段被保留不等于每个模型都接受该字段。
设置 "stream": true 后返回 SSE 增量。客户端应处理 choices[].delta、结束原因和流结束标记;网络中断时记录请求 ID,并限制自动重试次数。
模型可能在 assistant 消息中返回 tool_calls。客户端执行工具后,用 role: "tool" 和匹配的 tool_call_id 返回结果,再继续请求。
不要直接执行未经校验的参数。写操作应要求用户确认或使用幂等机制。
何时迁移到 Responses
Section titled “何时迁移到 Responses”以下情况优先使用 Responses:
- Codex 或新的代理工作流;
- 需要类型化流事件和 Item 结构;
- 需要
previous_response_id延续会话; - 希望跟随 OpenAI 新能力的主接口。
如果现有 SDK 只支持 messages / choices,或业务已稳定依赖该响应结构,可以继续使用 Chat Completions,不必为了形式迁移。
400:检查消息角色、内容结构以及模型是否接受请求参数。401/403:检查 Bearer Key、模型权限和分组。- 响应结构不匹配:确认客户端没有把 Responses 的
output与 Chat 的choices混用。 - 工具结果被拒绝:检查
tool_call_id是否与模型返回值一致。
官方参考:Chat Completions · 迁移到 Responses · 函数调用