解剖一次模型调用
一次模型调用就是一次 HTTP 请求:发 messages 和参数,收 content、finish_reason 和 usage。
为什么重要
看懂请求响应结构,才能排查没答完(finish_reason 为 length)、花了多少(usage)和指令放错角色这三类日常问题。
核心原理
messages 按顺序装对话:system 放稳定规则,user 放本次输入,assistant 是模型的历史回复;model 参数选择模型。响应里 content 是生成文本,finish_reason 标记停止原因(stop 为完整结束、length 为被输出上限截断),usage 给出输入输出 token 数。
工程实现
- 规则放 system,输入放 user,不混写
- 先查 finish_reason 再使用 content
- 记录 usage 的输入输出 token 做成本核算
展开说明
最小请求与响应(字段名为示意,以官方文档为准):
{ "model": "gpt-4o-mini", "messages": [{ "role": "system", "content": "你是简洁的助手" }, { "role": "user", "content": "用一句话解释 API" }] }{ "content": "API 是程序之间约定好的调用入口。", "finish_reason": "stop", "usage": { "input_tokens": 24, "output_tokens": 15 } }常见误区
- 所有指令塞进 user,放弃 system 的优先级
- 不读 finish_reason,把截断输出当完整结果
面试怎么说
调用等于 messages(system/user/assistant)加 model 参数进,content、finish_reason、usage 出;按 finish_reason 判完整性,按 usage 算成本。