微信扫码
添加专属顾问
我要投稿
Ragflow知识库优化检索的实用指南,助你提升AI agent的精准度与效率。核心内容: 1. 提升检索召回率的关键参数设置技巧 2. 支持多跳问答和复杂查询的参数配置方法 3. 综合运用优化策略打造最佳检索体验
摘要:在我们使用的开源的AI Agent开发工具中,ragflow因为它的知识库相对比较专业,也受到很多开发者的喜欢,目前在github上的星级有62.2K的星。是一个非常受欢迎的开源项目。成为众多开发者和企业处理海量数据、实现高效知识检索与应用的得力助手。但是由于构建知识库的设置不当也会让检索准确性下降很多,本文基于当前的开源情况,深入探讨的优化知识库检索的几个关键参数设置的问题。
01、提升检索召回率的几个重要参数
一、设置页面排名:检索权重的精准调控
在ragflow中,这个参数设置在知识库->设置里面的如下所示:
这个参数的意义官方给出的定义是:知识库检索时,你可以为特定知识库设置较高的 PageRank 分数,该知识库中匹配文本块的混合相似度得分会自动叠加 PageRank 分数,从而提升排序权重。
使用通俗易懂的话来描述,即为在聊天助手和agent的检索配置的时候,添加了多个知识库,当这个知识库的页面排名大于0,那么它的权重就自动增加,从这个知识库检索到数据分块就会自动排到前面去了。
那么它主要有哪些应用场景了?例如我们常常会遇到需要同时管理多个知识库的情况 。比如,一家大型科技企业可能拥有产品技术文档知识库、客户服务案例知识库、市场调研报告知识库等多个不同类型的知识库 。当用户进行查询时,希望能够优先从与查询内容最相关的知识库中获取信息,这时候可以通过设置页面排名。通过提高某个特定知识库的检索权重,我们可以让 Ragflow 在检索时更加倾向于从这个知识库中查找答案,从而提高检索结果的相关性和准确性。
再比如说一家电商企业为例,它有两个主要的知识库:一个是商品信息知识库,包含了所有在售商品的详细参数、价格、库存等信息;另一个是用户评价知识库,记录了用户对商品的评价和反馈。当用户在搜索框中输入 “某品牌手机的性能如何” 时,我们希望 Ragflow 能够优先从商品信息知识库中检索相关内容,因为那里有关于手机性能的最准确描述。通过设置页面排名,将商品信息知识库的权重调高,就可以实现这一目标,确保用户能够快速获得最有用的信息 。
二、自动关键词:检索的智能纠错器
在 Ragflow 的知识库优化检索方法中,自动关键词功能可以帮助进行智能纠错器。当我们在海量的知识库中进行检索时,由于自然语言的灵活性和多样性,用户输入的查询词可能与知识库中的表述存在细微差异,这就容易导致检索结果不准确或不完整 。自动关键词功能正是为了解决这一问题而诞生的。它的官方定义:自动为每个文本块中提取 N 个关键词,用以提升查询精度。请注意:该功能采用“系统模型设置”中设置的默认聊天模型提取关键词,因此也会产生更多 Token 消耗。另外,你也可以手动更新生成的关键词。
当我们在 Ragflow 中为知识库添加关键词后,它会借助使用大模型的总结和提炼能力,从每个词块中生成一组关键词或同义词 。这组生成的关键词就像是为知识库建立了一个更加丰富、灵活的索引体系方便后续快速检索。当我们将自动关键词配置为8的时候,它在每个数据分块自动给这个分块创建8个关键词,创建的关键词如下图所示:
自动创建关键词的作用,主要是方便提升我们检索召回率。例如,在一个关于电子产品的知识库中,有一个词块描述了 “智能手机的快充技术”,自动关键词功能可能会生成 “快速充电”“快充协议”“手机快速充电技术” 等相关的关键词和同义词 。
当用户进行检索时,如果输入 “手机怎么快速充电”,即使知识库中并没有完全匹配的表述,但凭借自动关键词生成的相关词汇,Ragflow 也能够准确地检索到包含 “智能手机的快充技术” 的词块,从而为用户提供准确的信息 。这一功能大大提高了检索的准确率,就像是为用户和知识库之间搭建了一座更加畅通的桥梁,无论用户以何种表述方式进行查询,都能更大概率地找到所需的知识。 再比如,在一个法律知识库中,对于 “合同违约” 这一概念,自动关键词功能可能会生成 “违约条款”“违约责任”“违反合同约定” 等关键词 。当用户查询 “合同中违约了怎么办” 时,就能通过这些自动生成的关键词,快速定位到相关的法律条文和解释,避免了因表述差异而造成的检索失败,为法律从业者和需要法律咨询的用户提供了极大的便利 。
三、自动提问:常见问题检索的神器
自动提问功能是 Ragflow 的一项独特而且很实用的功能,它为常见问题检索场景带来了革命性的变化,尤其适用于涉及产品手册或政策文件的场景 。在这些场景中,用户常常需要从大量的文字内容中快速找到特定问题的答案,而自动提问功能就像是一个智能向导,能够帮助用户更高效地实现这一目标。并且人工可以自动添加一些常见问题,为用户后续的提问建立快速的反馈方式。自动问题的主要应用场景是为专业的文档创建常见需要回答的问题,便于快速的定位到需要的内容。它的官方定义:利用“系统模型设置”中设置的 chat model 对知识库的每个文本块提取 N 个问题以提高其排名得分。请注意,开启后将消耗额外的 token。您可以在块列表中查看、编辑结果。如果自动问题提取发生错误,不会妨碍整个分块过程,只会将空结果添加到原始文本块。
当我们在处理产品手册时,比如一款复杂的电子产品,其手册可能包含了产品的功能介绍、使用方法、故障排除等众多内容 。对于普通用户来说,要在这样一本厚厚的手册中找到自己关心的问题答案并不容易。而 Ragflow 的自动提问功能可以使用聊天模型自动从产品手册的数据块中生成各种问题,如 “这款产品如何开机?”“如果出现屏幕花屏该怎么办?”“如何连接无线网络?” 等等 。这些问题涵盖了用户在使用产品过程中可能遇到的各种常见问题 。当用户输入相关查询时,即使表述与手册原文不完全一致,也能通过这些自动生成的问题快速匹配到相关的数据块,从而获得准确的解答 。
在政策文件场景中,自动提问功能同样发挥着重要作用。以税收政策文件为例,企业财务人员需要了解各种税收优惠政策、申报流程等内容 。政策文件往往语言严谨、内容复杂,解读起来有一定难度 。Ragflow 通过自动提问功能,从政策文件的数据块中生成诸如 “小微企业有哪些税收优惠政策?”“增值税申报的截止日期是什么时候?”“如何申请研发费用加计扣除?” 等问题 。当财务人员查询相关政策时,能够迅速定位到关键信息,大大提高了工作效率,减少了因对政策理解不清晰而导致的错误 。
四、使用标签集:数据块区分检索的钥匙
在 Ragflow 知识库中,数据的多样性和复杂性是不可避免的 。标签集的作用就是在大量相似的数据块中对不同的块做特性的描述,方便我们精准的找到我们需要的内容。当我们面对大量相似的数据块时,如何准确地检索到目标数据块就成为了一个难题。而使用标签集,就像是为我们提供了一把区分检索数据块的钥匙,能够有效地解决这一问题 。它的官方定义:请选择一个或多个标签集或标签知识库,用于对知识库中的每个文本块进行标记。对这些文本块的查询也将自动关联相应标签。此功能基于文本相似度,能够为数据集的文本块批量添加更多领域知识,从而显著提高检索准确性。该功能还能提升大量文本块的操作效率。为了更好地理解标签集的作用,以下是标签集和关键词之间的主要区别:
标签集的主要作用在于能够将详细数据块的特性清晰地表达出来 。通过为不同的数据块添加特定的标签,我们可以对数据进行分类和标记,以便在检索时能够根据这些标签快速地筛选出符合要求的数据块 。比如,在一个包含众多电子产品信息的数据集中,我们可以为关于手机的数据块添加 “手机” 标签,为关于平板电脑的数据块添加 “平板电脑” 标签 。这样,当用户查询 “手机的处理器有哪些” 时,Ragflow 就可以根据 “手机” 标签迅速定位到相关的数据块,而不会被大量关于平板电脑等其他电子产品的数据所干扰 。
配置过程:
1、创建一个标签集的知识库
这里设置的切片方法为tag.
2、上传标签集的文档。
3、上传的标签集数据如下所示,第一列是标签描述,第二列是标签名称
4、在对应的数据集配置标签集。这样,上传的数据集就会自动打上对应的标签。
5、也可以手动修改标签集。例如打开一个数据集的块。进行设置。
这样完整的标签集就设置完成了。
另外自动关键字或自动提问的值与您知识库中的分块大小密切相关。但是,如果您是第一次使用此功能,并且不确定从哪个值开始,以下是我们从社区收集的一些值设置。虽然它们可能不准确,但至少可以提供一个起点。大家可以参考一下。
2、支持多跳问答和复杂查询的重要参数设置
支持多跳问答和复杂查询的重要参数有两个,一个是知识图谱,一个是RAPTOR。实现的原理不同,但是目的是一样的,下面详细介绍一下,大家可以根据情况选择使用。
一、启用 RAPTOR:多跳问答的救星
在复杂的自然语言处理任务中,多跳问答一直是一块难啃的 “硬骨头”。它要求系统能够通过多步推理,从不同的文档片段中综合信息,最终得出准确的答案 。例如,当我们询问 “苹果公司创始人史蒂夫・乔布斯的第一份工作是什么?” 这样的问题时,就需要先找到关于史蒂夫・乔布斯的基本信息,再从这些信息中进一步挖掘他早期职业生涯的相关内容,才能得到准确答案 。在这样的多跳问答任务中,传统的检索方法往往显得力不从心,而启用 RAPTOR(树状结构检索的递归抽象处理)则为解决这一难题提供了有效的途径 。
开启RAPTOR,数据上传后,ragflow将原始文档划分为多个块后,这些块将根据语义相似性(而非其在文本中的原始顺序)进行聚类。然后,系统默认的聊天模型会将聚类结果汇总为更高级别的块。此过程以递归方式应用,形成一个自下而上具有不同汇总级别的树形结构。如下图所示,初始块构成叶节点(以蓝色显示),并被递归汇总为根节点(以橙色显示)。
递归聚类和总结捕获了多跳问答所需的广泛理解(通过根节点)以及精细细节(通过叶节点)。
对于涉及复杂、多步骤推理的多跳问答任务,问题与其答案之间通常存在语义鸿沟。因此,使用问题进行搜索通常无法检索到与正确答案相关的组块。RAPTOR 通过为聊天模型提供更丰富、更符合上下文感知且更相关的组块来总结,从而解决了这一难题,使人们能够在不丢失细节的情况下获得整体理解。例如,在回答 “人工智能在医疗领域的应用有哪些局限性?” 这个问题时,根节点可以帮助我们确定答案与人工智能和医疗领域相关,叶节点则可以提供具体的局限性内容,如数据隐私问题、算法可解释性差等 。
二、知识图谱:多跳问答的智能向导
在 Ragflow 的优化检索方法中,知识图谱扮演着至关重要的角色,尤其是在处理多跳问答任务时,它展现出了超越传统提取方法的独特优势 。知识图谱本质上是一种结构化的语义知识库,它以图的形式组织知识,通过节点表示实体,边表示实体之间的关系 。这种直观且高效的知识组织方式,使得知识图谱在多跳问答场景中能够发挥巨大的作用 。知识图谱对于涉及嵌套逻辑的多跳问答尤其有用。当您针对包含复杂实体和关系的书籍或作品进行问答时,它们的表现优于传统的提取方法。下图是ragflow自动形成的知识图谱,我们看到目前还有很多点未连接上,这种效果其实还不是很好,最好的情况下是所有点都可以连上,目前ragflow还未提供修改图谱的方法,未来希望提供API可以调整图谱是最好的。
开启了知识图谱之后,默认形成知识图谱的关键点是这些,也可以手动添加,方法是指提取知识图谱节点和关系的方法,实体归一化是将相似实体规整在一起,而社区报告是为了提高知识图谱检索效率的,可以开启。不用整体扫描。
知识图谱面对比跳问答非常有效果,例如,在金融领域,当我们需要了解 “某公司的主要竞争对手有哪些,这些竞争对手的核心产品是什么?” 这样的问题时 。传统提取方法可能会因为信息分散在不同的金融报告、新闻资讯中,难以快速、准确地给出答案 。而知识图谱通过将公司、竞争对手、产品等实体以及它们之间的竞争关系、产品所属关系等进行清晰的标注和关联,能够快速地为我们提供全面的解答 。它可以从 “某公司” 实体节点出发,沿着 “竞争对手” 关系边找到相关的公司实体,再从这些竞争对手实体出发,通过 “核心产品” 关系边获取它们的核心产品信息 。 知识图谱就像是一个智能向导,在复杂的知识迷宫中,为多跳问答指引出准确的路径,让我们能够更加高效地获取所需的知识 。它不仅提高了检索的准确性,还为 Ragflow 在处理复杂问题时提供了强大的支持,使得 Ragflow 在智能问答、智能客服等领域能够更好地服务用户 。
3、综合运用:打造最佳检索体验
在探索了 Ragflow 知识库的多种优化检索方法后,我们深刻认识到每种方法都有其独特的优势和适用场景 。然而,要真正实现 Ragflow 知识库检索性能的飞跃,充分发挥其在各种应用场景中的价值,关键在于综合运用这些优化方法 。
当我们将设置页面排名、自动关键词、自动提问、启用 Excel2HTML、使用标签集、启用 RAPTOR 以及知识图谱等方法有机结合时,就能够打造出一个全方位、多层次的优化体系 。
1、设置页面排名可以帮助我们在多知识库环境中快速定位到最相关的知识来源;
2、自动关键词和自动提问则从不同角度提高了检索的准确性和召回率,确保用户能够获取到更全面、更精准的信息 ;
3、启用 Excel2HTML 让复杂的表格数据得以清晰呈现,为数据分析和查询提供了便利 ;这里其实最好的方式是使用docling转化成md格式效果会更好,当然没有的话,用这个处理也可以调整。
4、使用标签集则为数据块的区分检索提供了有力支持,使得检索更加具有针对性 ;
5、启用 RAPTOR 和知识图谱则在多跳问答等复杂任务中发挥着关键作用,帮助我们跨越语义鸿沟,获取更深入、更准确的答案 。
例如,在一个大型企业的智能客服系统中,同时运用这些优化方法可以显著提升客服的工作效率和服务质量 。当客户咨询产品相关问题时,设置页面排名能够让系统优先从产品知识库中检索信息;自动关键词和自动提问功能可以理解客户问题的多种表述方式,准确匹配到相关知识;如果客户的问题涉及产品的规格参数等表格数据,启用 Excel2HTML 能确保数据准确展示;对于一些复杂的技术问题,可能需要多跳推理才能解答,启用 RAPTOR 和知识图谱就能派上用场,帮助客服快速找到答案 。
Ragflow 知识库的优化检索是一个综合性的工程,需要我们根据具体的应用场景和需求,灵活选择和组合各种优化方法 。
欢迎加入免费【数据&AIGC交流群】社群,长按以下二维码加入专业微信群,商务合作加微信备注商务合作,AIGC应用开发交流入群备注AIGC应用
添加微信备注:企业+职业+昵称
往期AI+数据历史热门文章:
解锁数据新动能:从统一数据治理迈向企业级Data Agent
往期AI大模型技术历史热门文章:
DeepSeek+RAGflow 2个小时搭建text-to-sql的AI研发助手,真有这么神?" data-itemshowtype="0" linktype="text" data-linktype="2">Deepseek+RAGflow 2个小时搭建text-to-sql的AI研发助手,真有这么神?
Deepseek+RAGflow 2个小时搭建text-to-sql的AI研发助手,真有这么神?
dify关键组件,开启AI应用开发新世界" data-itemshowtype="0" linktype="text" data-linktype="2">一文解锁Dify关键组件,开启AI应用开发新世界
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-14
别只顾着卷检索了!真正决定RAG上限的,是这四个“后处理”工程
2025-08-14
RAG 入门指南:LlamaIndex、GraphRAG、 RAGFlow 学习建议与技术选型
2025-08-14
Spring AI 高级 RAG 优化指南:文档预处理提升检索精度与召回率
2025-08-13
再看表格RAG 怎么做?及大模型问数开源项目SQLBot实现解析
2025-08-13
大模型增强检索优化之——用智能体去重构你的RAG系统
2025-08-13
大模型RAG实战|基于ThinkDoc文档解析与融合检索能力,提升RAG效果
2025-08-11
当AI学会“查资料”:RAG如何让智能回答更靠谱?
2025-08-11
检索增强生成(RAG):让AI拥有“知识库”能力
2025-05-30
2025-06-05
2025-06-06
2025-05-19
2025-06-05
2025-05-20
2025-05-27
2025-06-05
2025-05-19
2025-06-20
2025-08-11
2025-08-05
2025-07-28
2025-07-09
2025-07-04
2025-07-01
2025-07-01
2025-07-01