使用 RAGFlow 搭建一套 AI 客服知识库

网上一直有一种声音,叫做AI抢了大部分人的饭碗,同时也提供了大量的新的工作岗位。随着部署使用这次的 RAGFlow,就更加感受到了这一点。

RAGFlow 是什么

RAGFlow 是一款 开源的 RAG(检索增强生成)引擎,专注于通过深度文档理解技术,帮助企业及个人高效处理复杂格式的非结构化数据(如合同、报表、论文等),并生成带精准引用的可信回答。

上面是 deepseek 给的介绍,再说说我的理解:他就是一个用于检索已有数据,提取关键内容后,整合输出的工具引擎。通俗一点来讲,就是一个比较小范围的AI搜索引擎。

本文重心主要介绍使用 RAGFlow 解决实际问题上,下载/安装/部署等前置条件相关,请查看这篇文章:kymjs.com/code/2025/0...

RAGFlow 部署完成以后,可以看到顶部总共有五个TAB,我们重点看【知识库】,【聊天】,【Agent】。

知识库

这个是最核心的部分,用于存储全部的文档数据。文档上传以后,AI会自动解析文档,有多种解析方式,目的就是把文档中的内容记录下来,方便查询的时候,能够快速用文档中的内容回答对应的问题。

点击右上角的创建知识库,名字可以随便给,比如上面的图,我创建了三个知识库,分别是测试数据,官网的文档,GitHub issue。

创建完知识库以后,首先要做的第一件事就是设置好知识库对文档的解析方式。也就是下图圈起来的部分。

这里重点介绍最常用的两种:GeneralQ&A

General 切片

"General" 分块方法支持的文件格式为MD、MDX、DOCX、XLSX、XLS (Excel 97-2003)、PPT、PDF、TXT、JPEG、JPG、PNG、TIF、GIF、CSV、JSON、EML、HTML。 此方法将简单的方法应用于块文件:

  • 系统将使用视觉检测模型将连续文本分割成多个片段。
  • 接下来,这些连续的片段被合并成Token数不超过"Token数"的块。

简单来说就是,首先基于图像分块(比如jpg这类图片)分好块以后,再提取文字或图片内容,将内容合并成一个块。没错,他就是基于块来切片的。

同时你可以自定义分块的方式,比如这里,默认是根据\n也就是换行符来分块,你也可以自定义,根据某个特殊字符来分块,同时支持定义每个块的 token 数。需要注意的是,这个 token 数并不是绝对的,比如如果AI认为此时的块过大,也会自己拆分。

这种切片方式,通常适合官网文档,或者技术博客这种长篇文章的切片。AI自己提取每段的主要内容,如果有必要,还会生成每段的关键词和对应解决的问题,当然这些关键词和问题你也可以自己手动编辑,用于应对后续问题的回复。

Q&A 切片

"Q&A" 分块方法支持 excel 和 csv/txt 文件格式。 这里三种格式我都尝试过,首选推荐用CSV格式,同样字符文档最小。其次Excel。不推荐 txt,解析起来经常错乱。

如果文件是 excel 格式,则应由两个列组成 没有标题:一个提出问题,另一个用于答案, 答案列之前的问题列。多张纸是 只要列正确结构,就可以接受。 如果文件是 csv/txt 格式 以 UTF-8 编码且用 TAB 作分开问题和答案的定界符。 未能遵循上述规则的文本行将被忽略,并且 每个问答对将被认为是一个独特的部分。

知识库解析

QA切片是最精准的切片,一个问题对应一个答案,适合作为首选回答。线上最常用的方式就是首先查找QA知识库,如果没有命中再考虑从其他知识库中寻找答案,如果都没有需要的答案,再返回默认回答或者由大模型回复。

要实现这样的逻辑,只需要给对应的知识库设置一个较高的优先级就行了。

当上传完文档并已经解析完成后,就可以双击文档,查看解析结果。如果结果的解析不满意,可以手动修改或添加内容。

聊天

聊天的本质是调用chat模型,来跟用户对话。但聊天允许关联任意数量的知识库,可以用于提升对话的准确性,并且允许手动定制上下文参数。可以通过API调用,也可以直接作为 iframe 嵌入到其他网页中。

例如在这个图中,我就直接关联了前面声明的两个知识库【TheRouter-issue】和【TheRouter 官网文档】。

对应的提示词也比较简单:

arduino 复制代码
你是一个智能助手,请总结知识库的内容来回答问题,请列举知识库中的数据详细回答。当所有知识库内容都与问题无关时,你需要让用户自行去官网https://therouter.cn查看文档。   
以下是知识库:
{knowledge}
以上是知识库。

Agent

如果你之前用过Coze,再看 RAGFlow 的 Agent 应该不会陌生,本质就是一个工作流。以 Coze 这张图为例,可以在输入和输出中定义定制化的过程,通常的做法是先优化用户输入,再在知识库中搜索,如果也没有就在网页中搜索,最后再交给大模型优化内容,再返回给用户。

RAGFlow 中,也基本是这个流程,但是不得不说,Coze 做的非常好,最强大的是有海量的第三方插件可供选择。前段时间也体验了一下 Coze 的开源版本,相比商业版差了太远,主要也是因为丢失了第三方插件这里的能力,剩下的东西太平庸了。

RAGFlow 也是这个问题,缺少第三方的插件,仅凭官方给出的这些能力,还是太弱了。虽然提供了百度/谷歌/必应这类搜索引擎,但是搜索结果可用性还是太低了,这里必应是因为马上要下线了,其他的原因请自行领悟。

感受

最后说一下我的感受。网上一直有一种声音,叫做AI抢了大部分人的饭碗,同时也提供了大量的新的工作岗位。随着部署使用这次的 RAGFlow,就更加感受到了这一点。

这种私有化的知识库,非常适合辅助客服的工作,大部分商业公司的线上客服或者语音客服都可以用 RAGFlow 优化,让客服有更高的效率。

但同时也面临新的问题,如果要想让对话更精准,就必须有人对知识库做专业的调优。比如我第一次,就是简单粗暴的把官网全部文档直接丢给知识库,使用块切片去执行默认的切片,最后测试,大部分内容都是不可用的。

如果要想可用,首先得手动二次分片,把内容转换成足够细力度的描述;其次需要修改文档的描述,现阶段大部分文档都是面向人可读性高的,但人可读性高不意味着机器可读性高,比如 TheRouter 官网的这篇文档,therouter.cn/docs/2022/0...。混淆配置部分,大部分Android开发都知道是什么意思,所以文档中只贴了代码,而没有任何文字描述,但如果作为知识库,应该更多解释混淆配置是什么,混淆过程中可能产生什么问题,反倒解决问题可以非常简单,直接引导查看文档,或者返回这个固定的代码。如果没有问题的描述,假设用户问题是:我的 app 在开发环境是正常的,但是发布到市场的包无法找到路由表,AI 在回答的时候就很难关联到这个问题,也不知道这段代码可以解决对应的问题。

相关推荐
猫头虎10 分钟前
什么是AI+?什么是人工智能+?
人工智能·ai·prompt·aigc·数据集·ai编程·mcp
闲不住的李先森1 小时前
Prompt 角色的概念
llm·aigc·ai编程
春末的南方城市4 小时前
统一虚拟试穿框架OmniTry:突破服装局限,实现多品类可穿戴物品虚拟试穿无蒙版新跨越。
人工智能·深度学习·机器学习·计算机视觉·aigc
用户5191495848454 小时前
HTTP/3/QUIC TLS密码套件配置错误漏洞分析
人工智能·aigc
Mintopia5 小时前
AIGC 多模态大模型在 Web 场景中的融合技术与挑战
前端·javascript·aigc
PetterHillWater5 小时前
Qoder特色功能仓库wiki索引
aigc
精灵vector5 小时前
基于视觉的网页浏览Langraph Agent
python·aigc·ai编程
墨风如雪16 小时前
刷爆AI圈!字节Waver 1.0,统一视频生成新里程碑!
aigc
程序员X小鹿17 小时前
火爆全网的神秘模型Nano Banana曝出真身!P图新王!(附免费入口)
aigc
cxyxiaokui0011 天前
检索增强生成(RAG):打破模型知识壁垒的革命性架构
java·aigc