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

对话聊天(Chatbot)

  1. 低成本构建:利用大语言模型,只需很少的工作量就能构建出定制的聊天机器人。
  2. 个性化与多轮交互:通过特定的聊天格式(接口),可以实现与机器人的延伸对话,使其能够针对特定任务或行为进行个性化定制。

一个优秀的 Chatbot 包含三种消息角色系统消息(System)、用户消息(User)和助手消息(Assistant):

  • 用户和助手消息代表对话双方的交替发言。
  • 系统消息用于设定助手的行为、角色和全局指令。它时刻引导模型,且对用户不可见,使开发者能在不干扰用户对话的前提下精准控制机器人的属性。

1. 基础对话:角色设定与上下文记忆

通过传入消息列表,让模型扮演特定角色,且不具备上下文记忆能力。如果想让模型引用或 “记住” 对话的早期部分,则必须在模型的输入中提供早期的交流。

messages = [ {'role':'system', 'content':'你是个友好的聊天机器人。'}, {'role':'user', 'content':'Hi, 我是Isa'}, {'role':'assistant', 'content': "Hi Isa! 很高兴认识你。今天有什么可以帮到你的吗?"}, {'role':'user', 'content':'是的,你可以提醒我, 我的名字是什么?'} ] response = get_completion_from_messages(messages, temperature=1) print(response)

输出:

2. 复杂任务:构建业务型 Chatbot(如订餐机器人)

将 Chatbot 应用于实际业务,需要设定严格的业务流程和知识库(如菜单)。在System Prompt中详细规定机器人的行为准则(问候 -> 收集订单 -> 确认 -> 询问地址 -> 结算),并将完整的菜单数据直接写入系统消息中。

import panel as pn # GUI pn.extension() panels = [] # collect display context = [{'role':'system', 'content':""" 你是订餐机器人,为披萨餐厅自动收集订单信息。 你要首先问候顾客。然后等待用户回复收集订单信息。收集完信息需确认顾客是否还需要添加其他内容。 最后需要询问是否自取或外送,如果是外送,你要询问地址。 最后告诉顾客订单总金额,并送上祝福。 请确保明确所有选项、附加项和尺寸,以便从菜单中识别出该项唯一的内容。 你的回应应该以简短、非常随意和友好的风格呈现。 菜单包括: 菜品: 意式辣香肠披萨(大、中、小) 12.95、10.00、7.00 芝士披萨(大、中、小) 10.95、9.25、6.50 茄子披萨(大、中、小) 11.95、9.75、6.75 薯条(大、小) 4.50、3.50 希腊沙拉 7.25 配料: 奶酪 2.00 蘑菇 1.50 香肠 3.00 加拿大熏肉 3.50 AI酱 1.50 辣椒 1.00 饮料: 可乐(大、中、小) 3.00、2.00、1.00 雪碧(大、中、小) 3.00、2.00、1.00 瓶装水 5.00 """} ] # accumulate messages inp = pn.widgets.TextInput(value="Hi", placeholder='Enter text here…') button_conversation = pn.widgets.Button(name="Chat!") interactive_conversation = pn.bind(collect_messages, button_conversation) dashboard = pn.Column( inp, pn.Row(button_conversation), pn.panel(interactive_conversation, loading_indicator=True, height=300), ) dashboard messages = context.copy() messages.append( {'role':'system', 'content':'创建上一个食品订单的 json 摘要。\ 逐项列出每件商品的价格,字段应该是 1) 披萨,包括大小 2) 配料列表 3) 饮料列表,包括大小 4) 配菜列表包括大小 5) 总价'}, ) response = get_completion_from_messages(messages, temperature=0) print(response)

Chatbot 收集完用户的自然语言需求后,通常需要将其转换为后端系统能处理的数据格式。在对话结束时,追加一条新的 System 消息,要求模型基于之前的对话生成 JSON 摘要。

关键点:此时必须将 temperature 设为 0,以确保输出格式的绝对稳定和可预测。

http://www.jsqmd.com/news/1078631/

相关文章:

  • LangGraph图编排底层原理:状态、节点与边的工程实践
  • 蓝速科技 10.1 寸会议预约门牌:小尺寸终端的大场景智慧落地方案
  • PVE Tools终极指南:让Proxmox VE管理变得简单高效的完整工具箱
  • LLM混合架构优化:量化、剪枝与蒸馏的工程化协同
  • 近期碎片0625
  • 一个传统企业老板的自白
  • TrollInstallerX:基于双漏洞利用机制的TrollStore部署方案
  • 从CWE到CVE:构建主动安全防御体系的核心逻辑与实践
  • RuntimeError: CUDA out of memory warming up sampler with 64 dummy requests——vLLM V1 引擎 OOM 排障指南
  • 被坑惨了!TypeScript 类型体操实战:我用 3 行代码干掉了 2000 行的 if-else
  • 从零构建异构高性能计算集群:Kubernetes与Ceph实战指南
  • ChatGPT嵌入DAM系统:自然语言驱动数字资产智能操作
  • 深圳市弹簧微久智造蜘蛛手编带机供应商
  • Linux命令-pwconv(从 /etc/passwd 创建 /etc/shadow 影子密码)
  • FRSM V6 Dense MoE vs Transformer — 全维度技术报告
  • 最新量化实现别急着扩功能,先跑通 API 小流程
  • 【读书笔记】《跨越不可能》
  • 智能工程师中的方案设计与优化分析
  • 福州全屋定制售后真相:为什么本地品牌比连锁大牌更靠谱?
  • 在Debian/Ubuntu中创建新用户并赋予Root权限
  • 告别招人内卷!零基础用 QClaw,一人撑起整盘生意
  • 偏函数与柯里化:函数式编程技巧
  • 解码“AI提效”与“AI研发”的双向奔赴!第二届AI项目管理大会10月启幕!
  • 缓冲区溢出漏洞实战:从bufbomb实验理解二进制安全攻防
  • ai 知识学习
  • 2026年AI工程师高薪赛道指南:大模型/AIGC风口+济南岗位缺口解析!
  • 技術專題報告:AI 代理時代的核心——SKILL 架構與 Google 生態演進
  • LangChain+通义千问双架构搭建企业级RAG智能客服(云端+本地离线双方案,纯架构深度实战)
  • Kubernetes 生产集群故障自愈:从 Pod 驱逐到节点自动恢复的实战进阶
  • Go语言的sync.RWMutex中的使用内存