首页 > 其他分享 >大模型在多轮对话中的“massage“

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

时间:2024-10-08 17:49:38浏览次数:11  
标签:多轮 assistant 模型 content 对话 user role 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 列表的更新。

标签:多轮,assistant,模型,content,对话,user,role,massage
From: https://blog.csdn.net/qq_42755230/article/details/142765299

相关文章

  • 前端零代码-技术原理:对话框嵌套和自定义按钮| uiotos致敬amis、appsmith、codewave、g
    对话框有默认标题头和脚,带有默认的取消、确定、关闭等按钮:   对话框编辑状态和运行状态UIOTOS中对话框属常见容器,内容由任意其他页面嵌套而来。如下所示:                                   ......
  • 清华:LLM解码策略实现双工对话
    ......
  • 火语言RPA流程组件介绍--处理网页对话框
    ......
  • 可视化对话树编辑笔记
    在制作RPG甚至AVG的时候,我们要涉及大量的文本编辑,这个时候不可视化的界面会大大提升项目的维护成本(非常好脚本,使我AVG项目崩溃),所以我们需要自己创建一个文本编辑界面。而在涉及对话的时候,这个叫做对话树的结构具有不错的性质,对话树是一个简单的多叉树结构,但节点被分为CP......
  • 如何让智能客服像真人一样对话?容联七陌揭秘:多Agent大模型
    科技云报到原创。经历了多年的“答非所问”、“一问三不知”,很多人已经厌倦了所谓的“智能客服”。哪怕是技术已经非常成熟、可以模拟真人发音的外呼机器人,也会因为“机感”重而被用户迅速挂机或转向人工客服。智能客服似乎遇到了一道坎,在理解用户、和用户对话方面,始终无法实现真正......
  • SimpleRAG-v1.0.3:增加文件对话功能
    Kimi上有一个功能,就是增加文件之后对话,比如我有如下一个私有文档:会议主题:《如何使用C#提升工作效率》参会人员:张三、李四、王五时间:2024.9.2614:00-16:00会议内容:1.自动化日常任务许多日常任务可以自动化,从而节省时间和精力。例如,如果你需要定期处理大量数据,可以使用C#编......
  • baichuan_lmdeploy大规模对话问答语言模型
    Baichuan论文无模型结构Baichuan系列模型是由百川智能开发的开源大规模预训练模型,包含7B和13B等规模。其中,Baichuan-7B在大约1.2万亿tokens上训练的70亿参数模型,支持中英双语,上下文窗口长度为4096。模型具体参数:模型名称隐含层维度层数头数词表大小总参数量训练数据(toke......
  • GPT对话知识库——将寄存器中的一位数据读到变量中需要什么步骤?&C语言中掩码的作用。
    目录1,问:1,答:1.确定目标寄存器地址2.定位目标位位操作的基本步骤:3.示例代码示例步骤:4.详细解释步骤5.举例6.常见用法总结注:C语言中掩码的作用:参考附件:提问模型:GPT-4o-miniFree提问时间:2024.09.131,问:将寄存器中的一位数据读到变量中需要什么步骤1,......
  • Golang在线客服系统源码:基于Gin框架,Websocket即时通讯企业网站客服聊天源码,包括后台管
    唯一客服系统是一款基于Golang的Gin框架构建的在线客服解决方案,支持独立部署,确保数据的私密性和安全性。它具备自适应的响应式设计,能够完美适配PC端、移动端以及APP内嵌等多种场景。客服端提供PC后台管理功能,实现实时消息接收和交流。此外,为了满足移动端回复需求,系统还利用uniapp......
  • Kyutai 开源对话模型 Moshi;李飞飞空间智能公司已筹集超过 2.3 亿美元丨 RTE 开发者日
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个......