RAG客服机器人

利用检索增强生成 (RAG) 技术,结合知识库检索和大语言模型的优势,搭建一个即智能又可靠的客服机器人。它能够从预先构建的知识库中检索相关信息,并用自然流畅的语言回答用户的问题。有效避免大语言模型常见的“幻觉”问题 (即生成虚假信息)。

为了更直观地展示项目效果,本项目模拟新东方客服机器人:以新东方主页为模板,嵌入一个对话窗口。可以回答与新东方主页新东方2024Q4财报相关的问题。

 

测试体验入口

  • 请点击 https://www.gabriel-ai.site/other-page/New_Oriental.html(如果页面插件加载出错,则可以直接访问对话窗口 https://udify.app/chat/QuZBVNLgnhrCv2VC 体验)
  • 注意:为控制成本,本应用接入的是免费的API服务。一些使用限制可能导致系统反应慢或运行异常。如遇到这些情况,请等待重试,或在页面底部留言告知。

 

操作方法

  1. 点击页面右下角的对话标签,在弹出的客服初始窗口中点击“开始对话”。
  2. 在对话窗口中输入你的问题。机器人会检索知识库,并为你解答。如果答案信息来自知识库,则它会在回答中提示参考的信息来源,便于核实。

视频演示:

 

技术实现

  • 该应用基于 Dify 平台,利用其知识库功能搭建。
  • 对新东方主页 HTML 文件采用 Dify 内嵌的 Unstructured ETL 方案解析。财报 PDF 文件转换为 Markdown 格式,做了长表格切分,并简单清洗。
  • 采用父子分段模式切分文本。然后接入 BAAI/bge-m3 模型将文本片段转换为向量,存入向量数据库,以便进行语义检索。
  • 采用 “混合检索” 模式,并使用 Cohere 的 rerank-multilingual-v3 模型进行 Rerank。
  • 利用 Dify 平台搭建工作流,接入大语言模型根据检索结果回复问题。
  • 应用的前端入口以 JavaScript 形式嵌入网页 HTML 代码中。

 

局限性

  • 目前知识库的检索召回率约为 70%-80%。影响召回率的主要问题是:一些以字体大小形式呈现的段落归属关系无法被系统自动解析;长表格分段之后可能会遗漏表头信息,而无法被检索到。这凸显了数据预处理的重要性。对于包含大量文件的知识库,需要建立 人工+自动化 的文件清洗流程。
  • Dify 自带的知识库系统无法处理和存储图片。

 

未来改进方向

  • 将知识库文件中的图片存储在云端图床,并以 URL 链接的形式嵌入,以此实现在检索结果中展示图片。
  • 尝试使用 LlamaIndex 或 RAGFlow 框架中的文档解析能力构建知识库,并与 Dify 的知识库进行效果对比。

 

 

发表评论