这套格式适合支持 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 文字消息

常见参数怎么选#

参数用途使用提醒
streamfalse返回完整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_reasonstop通常为正常结束;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,但应用程序仍需要正确处理事件边界。

Responses接口

使用 input 与 output 的另一套协议。

Anthropic Messages

Claude风格消息与内容块。

读懂计量与扣费

用量字段与实际消费一起核对。