AI
如何搭建让 AI 智能体直接作答的聊天机器人知识库
AI 智能体的表现,取决于它能查到什么。本文介绍如何选择资料来源、组织内容、用通俗的话理解分块与 RAG,以及上线后如何让知识库保持准确。
MonoChat 团队 更新于: 1 分钟阅读
本页内容
聊天机器人知识库,是 AI 智能体在回复前会检索的一批经过审核的内容:常见问题的答案、产品和服务详情、政策、地点和营业时间。客户提问时,智能体会检索最相关的段落,并依据这些段落写出答案。搭建时,请从客户真实提出的问题出发,用平实的语言把每个事实只写一次,拆分成聚焦的小节,并在业务发生变化时及时更新。
许多表现不佳的 AI 智能体,问题并不出在模型上,而是出在它能查到的内容上。如果您的退货政策躺在三年前的一份扫描版 PDF 里,智能体要么照着引用,要么靠猜。本指南介绍该放哪些内容、如何组织结构、检索是如何工作的(用通俗的话讲),以及客户开始与它对话之后如何保持内容准确。
聊天机器人知识库究竟起什么作用
大型语言模型了解很多关于世界的知识,却对您的业务一无所知。它不知道您的价格、您的门店,也不知道周日是否送货。知识库填补的正是这个空白。
标准做法是检索增强生成(RAG)。用通俗的话说:
- 客户提出问题,可能在 WhatsApp、Instagram 或您网站的在线聊天中。
- 系统在知识库中检索与问题含义最匹配的段落,而不只是匹配字面上完全相同的词。
- 智能体收到这些段落,连同问题和它的指令。
- 智能体依据这些段落写出回复,理想情况下,不会说出段落未支持的内容。
这就是为什么您不需要“训练”或微调模型,就能让它根据您的文档作答。您更新内容,下一次回答就会随之改变。
知识库中应包含哪些内容
请从客户的问题出发,而不是从您手头恰好有的文档出发。从收件箱、邮件客服和电话记录中调出最近几百次会话,按主题分组。出现最多的主题,就是您最先要写的小节。
| 内容类型 | 示例 | 智能体为什么需要 |
|---|---|---|
| 常见问题 | “你们寄国外吗?”“可以修改预订吗?” | 覆盖大部分日常问题 |
| 产品与服务 | 名称、规格、包含内容、适合人群 | 让智能体能够推荐和比较 |
| 价格与费用 | 价目表、配送费、押金 | 避免编造或过时的价格 |
| 政策 | 退货、取消、保修、隐私 | 高风险回答,必须准确 |
| 地点与时间 | 地址、营业时间、节假日休息安排 | 客户经常询问的简单事实 |
| 流程 | 如何预订、如何付款、如何申请保修 | 把回答转化为下一步操作 |
| 升级规则 | 哪些问题智能体绝不能自行回答 | 告诉它何时转交给人工 |
请不要放入内部备忘、草稿、过期的活动条款,以及任何包含个人数据的内容。智能体可能会向任何客户引用知识库中的内容,因此每一行都应当视为公开信息。
如何组织内容,让检索更容易命中
检索针对的是文本片段,而不是整个文件。内容怎么写、怎么拆分,比内容有多少更重要。
一个小节只写一个主题
一个标题为“线上订单退货”、包含五个短段落的小节,检索效果远好于一份 40 页的条款文档,其中退货内容在第 31 页。如果一页内容涵盖多个主题,就把它拆开。
先写答案
每个小节先给出直接的答案,再补充条件和例外。被检索到的段落应当包含答案,而不只是背景介绍。
不好:我们公司成立于 2009 年,始终关注
客户满意度。多年来,我们的退货流程……
更好:线上订单可在签收后 14 天内退货。
商品须未使用且保持原包装。
特价商品可以换货,但不能退款。
每个事实只写一次
如果您的配送费出现在四份文档里,而您只更新了三份,智能体就可能检索到旧的那份。每个事实只保留一个权威来源,并删除重复内容。
使用客户常用的说法
客户会写“退钱”,而不是“退款处理流程”。把您在真实聊天中看到的各种说法加为问题标题,这样语义搜索就有更多可以匹配的内容。
保持表格和列表简单
简单的价格表和项目符号列表通常在拆分后依然完好。复杂的合并单元格表格和扫描图片则往往不行。拿不准时,把它们改写成简短的句子。
用通俗的话讲分块
内容在能够按含义检索之前,会先被切成块,每个块再被转换成一组数字,称为嵌入(embedding),存入向量数据库。回答时,问题会以同样的方式转换,系统返回最接近的块。
有两个设置会影响结果:
- 块大小。 小块很精确,但可能丢失上下文(只有“14 天内”,却没说是什么的 14 天)。大块保留了上下文,却会带进不相关的文字,可能干扰回答。
- 重叠。 在相邻的块之间重复少量文字,可以降低关键句子被从中间切断的可能性。
第一天通常不需要调整这些设置。对于结构良好的内容,默认值就足够。只有当测试显示智能体检索到了正确的文档、却取到了错误的部分时,才需要回头调整。
按用途划分知识
把所有文档堆在一起,规模越大,回答越差。销售助手不需要您内部的排班流程,客服智能体也不该引用一份草稿价目表。请把内容划分为不同的领域,例如客户支持、销售和内部运营,并只给每个智能体它需要的领域。
这也能降低风险。智能体检索不到的内容,也就不可能泄露。关于哪些数据应该、哪些不应该进入 AI 系统,请参阅我们的 AI 聊天机器人隐私清单。
把静态知识与实时数据结合起来
知识库存放的是变化缓慢的内容:政策、产品描述、营业时间。订单状态、库存数量或客户的下一次预约,并不适合放在这里。这些信息应当在提问的那一刻,通过工具调用(函数调用)或集成,从您的系统中获取。
一个好用的规则:如果某个事实一天会变化好几次,就实时获取;如果一年只变几次,就放进知识库。
保持知识库最新
上线时正确的知识库,很快就会过时。请把维护纳入日常工作:
- 为每个小节指定负责人,例如运营负责营业时间和地点,财务负责价格。
- 变更即更新。 政策或价格一有变化,当天更新知识库,然后重新建立索引。
- 每周复查未能回答的问题。 智能体答不上来的每个问题,要么是内容缺口,要么是措辞问题,要么本就该由人工处理。
- 每月做一次审核。 阅读重点小节,删除过时内容,并检查季节性信息(节假日营业时间、活动条款)是否已经过期。
- 关注转人工的情况。 如果同一个主题总是转到人工,就要么补充内容,要么确定它应该始终由人工处理。我们的 AI 转人工指南介绍了相关规则。
上线前如何测试知识库
准备一套包含 30 到 50 个真实问题的测试集,并写明每个问题的预期答案。其中应包括:
- 常见问题,按客户的书写习惯表述,包括错别字和简短的消息。
- 边缘情况,即政策存在例外的情形。
- 未覆盖的问题,用来确认智能体会说不知道,而不是靠猜。
- 其他语言的问题,如果您服务国际客户。
测试:“穿过一次的鞋子能退吗”
预期:说明退货商品必须未使用,并提出为客户转接团队,
以处理例外情况。
不合格:同意退款,或编造另一个时间期限。
请分别检查两件事:系统是否检索到了正确的段落,智能体是否正确使用了它。用对了段落却答错,是提示词问题;用错了段落而答错,是内容或分块问题。我们的上线前测试 AI 智能体指南对测试集和指标有更详细的介绍。
知识库的常见错误
- 把手头所有文档都上传,而不是只放客户需要的内容。
- 把价格或配送承诺写在智能体的指令里,结果没人记得去更新。
- 把旧版政策与新版政策并排放着。
- 把扫描图片或复杂的表格当作可读内容。
- 找不到相关内容时没有兜底方案,这会招致幻觉。
如何在 MonoChat 中搭建 AI 知识库
MonoChat 提供两种方式来构建智能体所掌握的知识,您可以根据想要的控制程度来选择。
快速上手:MonoChat Start
MonoChat Start 会读取您的网站并为您撰写知识库:企业简介、您的产品和服务、您的地点、您的政策,以及约四十个客户真正会问的问题。没有网站,或者网站内容很少?那就回答五个问题即可。
助手可以说的一切内容,都放在四个标签页中:Questions(问题)、Products & services(产品与服务)、Locations(地点) 和 Policies(政策)。您可以编辑任何条目、将其开启或关闭,或者导出。凡是没有写在这里的价格、送达时间或保证,助手都不会声明。如果某些答案是根据您所在行业的通用知识、而非您的网站写成的,它们会处于关闭状态,并带有“Check this”标记,直到您批准为止。
当它没有答案时,不会随意发挥。它会把请求记录在 Messages taken 下,并告诉客户会有专人回复;它的报表会列出未能回答的问题,这正是您每周的更新清单。它可以在 WhatsApp、Instagram、Telegram 或您网站的在线聊天中作答。
完全掌控:AI 知识库与 RAG
对于更大的内容集,AI 知识库支持上传 PDF、Excel 文件、文本和网页,并支持批量上传、元数据和标签。您可以把内容组织成范围(scope),例如客户支持、销售或内部流程,每个范围都有各自的访问控制,并把每个范围分配给应当使用它的智能体和流程。
MonoChat 会使用开箱即用的默认设置对内容进行分块和嵌入,需要时您也可以选择嵌入模型、块大小、重叠和预处理规则。向量存储在 MonoChat 内置的向量数据库中,或通过向量数据库集成存储在您自己的数据库中。内容变化时,您更新对应范围并重新建立索引,助手就会从新版本中检索,无需重建流程。
如果要把文档与实时数据结合,RAG 编排可以把查询改写、检索、重排序、工具调用、引用和最终回复等步骤串联起来,而 AI 函数工具可以在同一个回答中获取订单状态或 CRM 记录等信息。
您可以从免费的 Basic 套餐(一个智能体、一个渠道)开始,访问 app.monochat.ai,并在我们的价格页面比较各套餐。
来源
用 MonoChat 付诸实践