消息格式
Chat Completions 使用 messages 数组描述对话上下文。每条消息至少包含 role 和 content。
角色
| 角色 | 用途 |
|---|---|
system |
设定助手的行为、语气和约束。 |
user |
表示用户输入。 |
assistant |
表示模型历史回复,也可用于提供示例回复。 |
tool |
表示工具执行结果,必须通过 tool_call_id 对应模型发起的调用。 |
文本消息
{
"messages": [
{"role": "system", "content": "你是技术支持助手。"},
{"role": "user", "content": "如何重置密码?"}
]
}
多轮对话
模型不会在请求之间自动保存上下文。应用需要将历史消息一并传入:
{
"messages": [
{"role": "user", "content": "我叫小明。"},
{"role": "assistant", "content": "你好,小明。"},
{"role": "user", "content": "我叫什么?"}
]
}
工具消息
模型返回工具调用后,执行函数并追加工具结果:
{
"role": "tool",
"tool_call_id": "call_123",
"content": "北京:晴,25°C"
}
然后将这条消息与原有历史一起发送,模型会生成最终答复。
内容限制
- 保持消息顺序稳定,不要丢失工具调用与工具结果的对应关系。
- 控制历史消息总长度,超出模型上下文限制时应进行截断或摘要。
- 不要在客户端直接拼接未经处理的用户输入到系统提示词中。
- 发送图片时,使用支持视觉的模型并参考多模态图片。