Chat Completions:OpenAI 兼容聊天
用 model 和 messages 创建对话,理解工具调用、用量及 SSE 流式结果。
这套格式适合支持 OpenAI Chat Completions 的软件和程序。它使用 messages 数组携带当前问题及必要历史,模型用 choices 返回回答。它与 Responses、Anthropic Messages 是不同协议。
请求地址与必填内容#
| 项目 | 填写内容 |
|---|---|
| 方法 | POST |
| 归壹完整地址 | https://univto.com/v1/chat/completions |
| 鉴权 | Authorization: Bearer 你的归壹API密钥 |
| 请求类型 | Content-Type: application/json |
| model | 有权限且支持本接口的精确模型ID |
| messages | 消息数组,最小情况为一条 user 文字消息 |
常见参数怎么选#
| 参数 | 用途 | 使用提醒 |
|---|---|---|
| stream | false返回完整JSON;true以事件流返回 | 首次调试建议false |
| temperature / top_p | 控制采样行为 | 部分推理模型限制取值或不支持;不要同时大量调参 |
| max_tokens / max_completion_tokens | 设置生成或补全上限 | 按具体模型选择支持字段,不把两项都随意设置;上限语义可能包含思考量 |
| stop | 停止序列 | 模型及接口需支持 |
| tools / tool_choice | 声明工具并选择是否调用 | 工具参数由模型生成,实际工具需要你的程序执行 |
| response_format | 约束文本、JSON对象或JSON Schema输出 | 模型需支持;结构约束不代替业务校验 |
| stream_options.include_usage | 请求流末尾用量信息 | 只有支持该选项的模型线路才会提供 |
最小 curl 示例#
先在自己的终端设置 GUIYI_API_KEY;将下面 YOUR_MODEL_ID 替换成支持本接口的完整模型ID。本例会发出正常付费生成请求。
curl --fail-with-body https://univto.com/v1/chat/completions \
-H "Authorization: Bearer ${GUIYI_API_KEY}" \
-H 'Content-Type: application/json' \
--data '{
"model": "YOUR_MODEL_ID",
"messages": [{"role": "user", "content": "你好,请用一句话介绍自己。"}],
"stream": false
}'读取返回#
| 字段 | 含义 |
|---|---|
| choices[].message.content | 常见文字回答;多模态或工具响应可能不是普通字符串 |
| choices[].message.tool_calls | 模型提出的工具调用,含调用ID及函数参数 |
| choices[].finish_reason | stop通常为正常结束;length表示触及输出限制;tool_calls表示需要处理工具调用 |
| usage.prompt_tokens / completion_tokens / total_tokens | 本次请求返回的计量信息 |
| usage中的cached_tokens或reasoning_tokens | 部分模型提供缓存或思考细项;缺失不等于零用量 |
多轮对话一般需要你在下一次 messages 中带上必要历史。工具调用时,保留 assistant 的 tool_calls,再使用对应 tool_call_id 提交工具结果;不要把模型给出的函数参数当作可以直接执行的命令。
流式调用要注意#
将 stream 设为 true 后按 SSE 逐事件解析,文字通常分散在 choices[].delta 中。不要将每个分片当作完整JSON响应,也不要只因HTTP 200或连接关闭就判定生成完整;应核对结束原因和该协议的结束标记。curl 查看流时可加 -N,但应用程序仍需要正确处理事件边界。