首页/AI/大模型部署与运维速查/chat/completions:请求结构要点

chat/completions:请求结构要点

主端点围绕 messages 数组:role(system/user/assistant/tool)与 content 是必填骨架;采样参数、stream、tools 都是同级字段,服务端按模型模板渲染。

对话端点的请求结构

对话端点的骨架是一个消息数组:每条消息带角色与内容,角色包括系统、用户、助手与工具。采样参数、流式开关与工具定义都是与消息数组同级的字段。服务端会用模型自带的模板把消息渲染成真正的提示词,因此不要自己在内容里拼接角色标记,否则模板会重复渲染。

最小请求

最小请求
curl http://127.0.0.1:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "<模型名>",
  "messages": [
    {"role": "system", "content": "你是简洁的技术助手"},
    {"role": "user", "content": "一句话介绍 KV 缓存"}
  ],
  "temperature": 0.3,
  "max_tokens": 128,
  "stream": false
}'

请求字段

字段作用注意
model指定模型名或别名与网关映射表保持一致
messages消息数组,含角色与内容多轮时按时间顺序追加历史
temperature采样温度与错误来源定位相关,排查时可归零
max_tokens输出长度上限输入加输出不超过上下文窗口
stream是否流式返回客户端与网关两处都要支持
工具相关字段定义可调用工具与选择策略自托管实现的支持程度需实测

典型使用场景

  • 业务接入:作为主调用入口,业务侧只维护消息数组与参数
  • 多轮对话:把历史消息按顺序放回数组,由服务端统一渲染
  • 流式前端:开启流式返回,边生成边展示,改善长回答的感知延迟
  • 联调排错:先用最小请求打通链路,再逐步加入参数
  • 回归测试:固定消息与参数作为冒烟用例,每次发布后执行
多轮对话把历史消息按顺序放回数组即可:服务端会用模型模板重新渲染,自己拼接角色标记会导致模板重复或格式错乱。
消息里塞自定义字段有风险:渲染与网关校验可能出错,扩展信息应通过独立通道传递。

易错点

  • 自己拼接角色标记:与模型模板叠加后格式错乱,输出异常且难以定位
  • 历史消息顺序混乱:模型看到的时间线不对,回答前后矛盾
  • 消息里加自定义字段:渲染或网关校验报错,扩展信息应单独传
  • 不设置输出上限:长回答拖长占用,高并发下排队加剧
  • 流式开关两侧不一致:客户端按非流式解析而服务端在流式返回,出现解析失败

数据来源与参考

  • OpenAI API 参考:Chat Completions(platform.openai.com/docs)
  • vLLM 官方文档:OpenAI 兼容服务器(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌