Chatbot
聊天机器人是一种通过文本或语音进行自然语言对话的软件,从 ELIZA 这类基于关键词匹配的脚本到 ChatGPT 这类 LLM 聊天应用都属于此类。
聊天机器人是一种通过文本或语音,以自然语言与人交谈的计算机程序。通常认为,约瑟夫·魏泽鲍姆在 MIT 编写并于 1966 年发布的 ELIZA 是第一个聊天机器人:它的 DOCTOR 脚本通过匹配关键词并将用户的话转成问题来模仿心理治疗师。魏泽鲍姆看到用户(包括他自己的秘书)把心事告诉 ELIZA,仿佛 ELIZA 能理解他们,这让他深感不安。此后,聊天机器人经历了三代发展,从基于规则的脚本到基于意图的机器人,再到大语言模型(LLM)。OpenAI 于 2022 年 11 月 30 日推出 ChatGPT,使第三代聊天机器人走向主流;如今,“聊天机器人”通常指 ChatGPT、Claude 或 Gemini 等 LLM 的聊天界面。
聊天机器人的工作原理#
- 基于规则的聊天机器人:将用户的话与手写模式匹配,并从模板中选择回复。这类机器人行为可预测、成本低,但遇到开发者未预料到的表达方式时就会失效。
- 基于意图的聊天机器人:自然语言理解(NLU)分类器会将每条消息映射到一个意图(例如查询余额),并提取账户或日期等细节,然后由设计人员编写的对话流程决定回复内容。银行、航空公司和电信公司采用这种方式构建客服机器人,因为每条回复都可以提前审核。
- LLM 聊天机器人:根据截至当前的对话内容,逐个词元生成回复。系统提示设定机器人的角色和规则,模型则负责处理开发者未预料到的表达方式。
LLM 聊天机器人背后的模型是Transformer,经过指令微调和基于人类反馈的强化学习(RLHF)训练以进行对话,并且不同调用之间没有记忆。应用会存储对话,并在每条新消息到来时,按照模型的聊天模板格式化后发送完整对话:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-135M-Instruct")
# 聊天机器人会存储对话,并在每个新轮次中发送完整对话
messages = [
{"role": "system", "content": "You are a support assistant for an online store."},
{"role": "user", "content": "Where is my order?"},
{"role": "assistant", "content": "Could you share your order number?"},
{"role": "user", "content": "It's 4417."},
]
# 聊天模板会将历史记录展平为一个提示,供模型继续生成
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(prompt)打印出的提示会用 <|im_start|> 和 <|im_end|> 标记包裹每轮对话及其角色,并以一个未闭合的 <|im_start|>assistant 行结尾,因此模型接下来的词元会成为回复;“是 4417”只有在先前的问题也包含在同一提示中时才有意义。每轮对话都会让提示变长,因此在超过上下文窗口之前,系统会裁剪或总结较长的对话;而提示缓存可避免每轮都重新处理未更改的历史记录。
依据、工具与图像#
仅根据训练数据回答问题的客服聊天机器人可能会自信地给出错误政策,因此生产环境中的机器人会先通过检索增强生成(RAG)检索相关文档和账户数据,用AI 护栏检查输入和草稿,并在无法为回复提供依据时转交给人工:
能够通过函数调用执行工具(例如查询订单)的聊天机器人正逐渐成为AI 智能体,而多模态聊天机器人则通过视觉语言模型(VLM)在一轮对话中接收照片和屏幕截图。Ultralytics LLM 接口可以向任何兼容 OpenAI 的聊天模型发送提示、图像或完整消息历史,并返回提供方自己的响应对象。因此,YOLO26流水线可以在检测到画面中有人之后,再让多模态模型描述场景。
风险#
企业部署聊天机器人后,幻觉可能带来法律后果。在 2024 年 2 月裁定的 Moffatt 诉加拿大航空案中,加拿大航空网站上的聊天机器人告诉一位悲痛的乘客,可以在旅行结束后申请丧亲票价折扣,这与航空公司的实际政策相矛盾。卑诗省民事调解仲裁庭驳回了加拿大航空关于聊天机器人应对自身陈述负责的主张,并判令航空公司支付差额。聊天机器人还会遭遇提示注入和越狱攻击;经过取悦用户训练的模型也可能出现AI 谄媚,认同错误说法而不是纠正它们。










