当前位置: 首页 > article >正文

大语言模型中,role为user、assistant、system有什么区别

这里写目录标题

  • 大语言模型中,role为user、assistant、system有什么区别
  • 要实现多轮对话,也就说要记住历史问答,该如何设置System、User、Assistant?
  • 管理历史对话

大语言模型中,role为user、assistant、system有什么区别

在大语言模型中,通常涉及到三种角色:用户(user)、助手(assistant)和系统(system)。它们的区别在于其在对话或交互过程中扮演的角色和功能。
系统(system):

  • 系统是指整个大语言模型或者其中的某个部分,负责处理用户输入并生成相应的输出。
  • 明确对话的主题或领域(例如,技术支持、教育、娱乐等)
  • 指示模型扮演特定角色(例如,老师、顾问等)

用户(user):

  • 用户是指与系统进行交互的个体或实体,通常是真实的人类用户或其他系统
  • 用户通过输入文本、语音或其他形式与系统进行沟通,提出问题、请求信息或执行操作。

助手(assistant):

  • 助手是一种程序或系统组件,设计用来协助用户完成特定的任务、获取信息或提供服务。
  • 助手通常具有自然语言处理能力,能够理解用户的输入,并根据输入提供相应的反馈、建议或执行操作,是模型生成响应的地方

示例:

 curl -s https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR-API-KEY" \
  -d '{
    "model": "gpt-3.5-turbo-16k",
    "messages": [
          {
         "role": "system",
         "content": "您是足球专家"
          },
          {
                 "role": "user",
                 "content": "谁赢得了2018年的FIFA世界杯?"
          },
          {
                 "role": "assistant",
                 "content": "法国赢得了2018年的FIFA世界杯。"
          },
          {
                 "role": "user",
                 "content": "下一届FIFA世界杯什么时候

举行?"
          }
        ]
  }'


要实现多轮对话,也就说要记住历史问答,该如何设置System、User、Assistant?

让大模型记住历史问答,就要传递上下文,在每次请求中,将之前的对话内容作为上下文传递给模型。其实就是初始化一个列表,将大模型每次的回答,保存给Assistant,append到列表中。

import openai

# 初始化对话历史
conversation_history = [
    {"role": "system", "content": "你是一个智能助手,专注于提供技术支持。请记住用户的历史问题和你的回答,以便在后续对话中提供更好的帮助。"}
]

# 用户的第一个问题
user_input = "我需要安装一个软件,你能告诉我怎么做吗?"
conversation_history.append({"role": "user", "content": user_input})

# 调用API生成响应
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=conversation_history
)

# 获取助手的回答
assistant_response = response['choices'][0]['message']['content']
conversation_history.append({"role": "assistant", "content": assistant_response})

print(assistant_response)

# 用户的第二个问题
user_input = "上次你提到如何安装软件,我想知道如何配置它。"
conversation_history.append({"role": "user", "content": user_input})

# 调用API生成响应
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=conversation_history
)

# 获取助手的回答
assistant_response = response['choices'][0]['message']['content']
conversation_history.append({"role": "assistant", "content": assistant_response})

print(assistant_response)

管理历史对话

在进行几轮对话后,上下文可能非常长:

  • 在对话进行到一定阶段后,可以对之前的对话进行摘要,以减少上下文的长度,同时保留关键信息。
  • 如果有可能,使用外部存储(如数据库或会话管理系统)来保存用户的历史对话,以便在后续对话中调用。

参考:

  • https://blog.csdn.net/qq_43276566/article/details/139956449
  • https://blog.csdn.net/Tory2/article/details/132823810

http://www.kler.cn/a/282940.html

相关文章:

  • Go八股(Ⅴ)map
  • ssm114基于SSM框架的网上拍卖系统的设计与实现+vue(论文+源码)_kaic
  • 从swagger直接转 vue的api
  • react + ts定义接口类型写法
  • 网络基础Linux
  • 前端面试笔试(二)
  • 我主编的电子技术实验手册(18)——认识电感
  • 【数学建模】国赛论文写作教学——问题重述与分析
  • HTML实现俄罗斯方块
  • Spire.PDF for .NET【文档操作】演示:创建标记的 PDF 文档
  • 3.服务注册_服务发现
  • 低代码技术:简化应用开发,推动数字化转型
  • 树莓派4B安装golang最新版(20210520)
  • 代理IP设置白名单:让你的网络更安全高效
  • 今日算法:蓝桥杯基础题之“切面条”
  • AI学习指南深度学习篇-长短时记忆网络的调参和优化
  • uni-app的示例项目--简单的登陆页面及列表页面
  • 分享5款支持论文写作网站先稿后付的网站!
  • 构建基于I2C与UART通信的智能嵌入式机械臂抓取系统,结合OpenCV技术进行高效物体识别与动作控制的综合解决方案(代码示例)
  • CSS 中高度 100%和高度 100vh 有什么区别
  • 【STM32】定时器
  • leetcode46:全排列
  • 自动化测试员的职业前景
  • 【考研数学】如何实现高效刷题?怎么刷题?
  • 【Pytorch】生成对抗网络实战
  • 切片上传记录