大模型在多轮对话中的“massage“

messages是用于与模型进行对话的结构化格式。这个格式通常用于对话式接口或应用程序中,以模拟人类与模型之间的多轮对话。messages列表中的每个元素代表一条消息,并包含了角色信息。常见的角色包括system、assistant和user

system

描述: system 消息通常用来向模型提供指导或设定对话的背景和规则。它通常是对话开始时的第一条消息。

作用: 这种消息用于设定模型的行为和语气。例如,它可以告诉模型如何回答问题、使用什么样的语气(如友好、专业等),或者提供额外的上下文信息以指导生成内容。

{"role": "system", "content": "You are a helpful assistant."}

功能: 指导模型的总体行为方式,不会直接出现在对话内容中,但会影响模型的响应风格和语气。

user

描述: user 消息表示用户发给模型的输入或提问,通常包含用户希望得到的具体信息或答案。

作用: 这是对话中的用户输入部分,模型将根据这些输入生成相应的回复。

{"role": "user", "content": "What's the weather like today?"}

功能: 提供模型需要处理和响应的输入或问题。

assistant

描述: assistant 消息表示模型的响应或生成的内容。模型会根据 user 的输入和 system 的指导来生成这些回复。

作用: 这是对话中模型的输出部分,通常包含回答、解释或与用户的互动。

{"role": "assistant", "content": "The weather today is sunny with a high of 25°C."}

功能: 显示模型根据用户的输入和系统设定生成的响应内容。

多轮对话设计

messages 结构设计

messages 通常是一个列表,每个元素是一个字典对象,包含以下两个关键字段:

  • role:指示消息的发送者,可以是 "system""user""assistant"
  • content:消息的内容,即实际的文本。
role 的具体含义
  • system:
    • 用于设定模型的行为或提供上下文指导。
    • 通常在对话开始时使用,用于定义模型的角色、语气或背景信息。
  • user:
    • 用户的输入或问题。
    • 表示对话中用户发言的内容。
  • assistant:
    • 模型的回复。
    • 表示模型在对话中生成的内容。

实例:

messages = [
    {"role": "system", "content": "You are a helpful assistant who answers questions in a concise and friendly manner."},
    {"role": "user", "content": "Hello, how are you today?"},
    {"role": "assistant", "content": "I'm an AI, so I don't have feelings, but I'm here to help you! How can I assist you today?"},
    {"role": "user", "content": "Can you tell me who won the World Cup in 2018?"},
    {"role": "assistant", "content": "France won the FIFA World Cup in 2018."},
    {"role": "user", "content": "What is the capital of France?"},
]

设定对话上下文

  • system 消息设定了模型的角色和语气,这有助于控制模型的输出风格和行为。

记录用户输入和模型响应

  • 每当用户发起新的对话或询问,都会添加一条 "user" 消息。
  • 模型根据 "user" 消息生成响应,并作为 "assistant" 消息保存。

保留对话历史

  • 通过将所有的对话轮次记录在 messages 列表中,模型可以“看到”之前的上下文,理解用户当前输入的语境,做出相关的回答。
注意事项

控制对话长度

  • 如果对话历史太长,超过了模型的最大输入长度(通常是 2048 或 4096 个 tokens),则需要截断旧的对话内容或省略某些上下文。
  • 通常保留最近的几轮对话,以确保模型具有足够的上下文信息。

确保上下文清晰

  • 在多轮对话中,如果用户的输入与前文高度相关,确保 messages 列表保留了相关的上下文(即之前的 userassistant 消息)。
  • 这样可以防止模型误解或丢失上下文。

动态更新 messages

  • 每次用户输入新的内容后,添加相应的 "user" 消息,然后将模型生成的回复添加为 "assistant" 消息。
  • 这可以在每轮对话后保持 messages 列表的更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值