Skip to main content
Open on GitHub

聊天历史

聊天历史记录是用户与聊天模型之间对话的记录。它用于在整个对话过程中保持上下文和状态。聊天历史记录是一系列 消息,每条消息都与特定的 角色 相关联,例如“用户”、“助手”、“系统”或“工具”。

对话模式

Conversation patterns

大多数对话都以一个 系统消息 开始,该消息为对话设定上下文。接着是一个包含用户输入的 用户消息,然后是包含模型响应的 助手消息

助手 可能直接向用户响应,或者如果配置了工具,则请求调用一个 工具 来执行特定任务。

一次完整的对话通常涉及两种消息交替模式的组合:

  1. < strong >用户 和 < strong >助手 代表一次来回对话。
  2. < strong >助手 和 < strong >工具消息,表示一种 < a t="C0">"代理" 工作流程,其中助手调用工具来执行特定任务。

管理聊天历史记录

由于聊天模型对输入大小有最大限制,因此管理聊天历史记录并在必要时进行修剪以避免超出 上下文窗口 是很重要的。

在处理聊天历史记录时,保持正确的对话结构至关重要。

管理聊天历史记录的关键指南:

  • 对话应遵循以下结构之一:
    • 第一条消息要么是“user”消息,要么是“system”消息,接着是“user”消息,然后是“assistant”消息。
    • 最后一条消息应为“user”消息,或为包含工具调用结果的“tool”消息。
  • 使用 工具调用 时,"工具" 消息只能跟在请求工具调用的 "助手" 消息之后。
提示

理解正确的对话结构对于在聊天模型中正确实现 存储 功能至关重要。