掘金 人工智能 前天 15:16
使用 RAGFlow 搭建一套 AI 客服知识库
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

RAGFlow 是一款开源的检索增强生成(RAG)引擎,专注于深度文档理解,帮助企业和个人高效处理合同、报表、论文等复杂格式的非结构化数据,并生成带精准引用的可信回答。它通过“知识库”功能存储和解析文档,支持“General”和“Q&A”两种切片方式,以适应不同类型的文档和查询需求。聊天功能允许关联知识库,提升对话准确性,而Agent则提供工作流能力,但目前在第三方插件方面仍有提升空间。RAGFlow尤其适用于优化客服工作,但要实现高精度对话,仍需专业人员进行知识库的精细化调优和文档的机器可读性优化。

✨ RAGFlow 是一款开源的 RAG 引擎,核心在于深度文档理解,能够高效处理合同、报表、论文等非结构化数据,并生成带有精准引用的可信回答,从而赋能企业及个人。

📚 “知识库”是 RAGFlow 的核心功能,用于存储和解析文档数据。它提供了“General”切片方式,适合长篇文章(如官网文档、技术博客),能自动提取内容、关键词和问题;以及“Q&A”切片方式,适用于 Excel、CSV/TXT 文件,要求问题与答案一一对应,能实现更精准的知识检索。

💬 “聊天”功能允许将多个知识库关联起来,并可定制上下文参数,通过 API 或 iframe 嵌入使用,能显著提升对话的准确性。用户还可以设定明确的提示词,引导 AI 总结知识库内容并精准回答问题,在知识库无相关内容时引导用户查阅官方文档。

⚙️ “Agent”功能类似工作流,允许用户优化输入、在知识库中搜索、进行网页搜索,并由大模型优化内容后返回。尽管 RAGFlow 在此方面与 Coze 类似,但目前缺乏丰富的第三方插件,其自带的搜索引擎可用性也有待提高。

💡 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。 此方法将简单的方法应用于块文件:

简单来说就是,首先基于图像分块(比如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 官网文档】。
对应的提示词也比较简单:

你是一个智能助手,请总结知识库的内容来回答问题,请列举知识库中的数据详细回答。当所有知识库内容都与问题无关时,你需要让用户自行去官网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 在回答的时候就很难关联到这个问题,也不知道这段代码可以解决对应的问题。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

RAGFlow AI 知识库 文档处理 客服优化
相关文章