支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


RAGflow分片策略与文档解析器

发布日期:2025-05-07 17:22:08 浏览次数: 1552 作者:AgentLight
推荐语

精准切割知识,高效检索文档。RAGflow分片策略,让文档处理更智能。

核心内容:
1. RAGflow分片策略解决文档处理痛点
2. 多种分片方法适应不同文档类型
3. 结构化数据提取,提升检索效率

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

在使用智能系统处理海量文档时,你是否遇到过这样的困扰:输入问题后,得到的答案要么答非所问,要么信息碎片化,无法精准命中需求?其实,这背后很大程度上是知识切片环节出了问题。而 RAGflow 的分片策略,就像是一把精准的 “手术刀”,能巧妙解决这些难题,让知识检索变得既精准又高效。


AgentLight" data-from="0" data-headimg="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=110454&url=aHR0cDovL21tYml6LnFwaWMuY24vc3pfbW1iaXpfcG5nL2xHSW1yeWxZZ0NLMXlNeVBOc2RpY3IySTNiUmpIQ0RKbEtBZDF0SHd3VlhpY2dpYVg0RUVNWmppYmY2eU5rRjN5RnJINjdQeGdTbkhndkJZSExRblJMeTRSdy8wP3d4X2ZtdD1wbmc=" data-signature="AI智能体、AI Agent、智能体定制、AI智能体培训、AI智能体学习、AI智能体工程师、AI应用探索、AI技术应用、AI知识分享" data-id="MzU2Njk1Mzk5Mg==" data-is_biz_ban="0" data-service_type="1" data-verify_status="0">


传统的文本切片方式,往往采用固定长度分割或简单的按段落划分,这种 “一刀切” 的做法,在面对复杂文档时,容易割裂知识的完整性,导致检索结果出现偏差。想象一下,一篇包含多个专业知识点、逻辑紧密的学术论文,若被随意切割,当用户检索特定概念时,系统很可能无法关联到完整且准确的内容。


其实在项目中,我们也碰到了客户经常问这些问题,我们的文档,如何采用更加合理的分块策略,才能更好的查询到所需的数据,这些才是客户更加关注的。


那我们来看下RAGflow提供了哪些分块的方法

1

切片方法

image.png


General 分块方法:

支持的文件格式为DOCX、XLSX、XLS (Excel97~2003)、PPT、PDF、TXT、JPEG、JPG、PNG、TIF、GIF、CSV、JSON、EML、HTML。

此方法将简单的方法应用于块文件:

  • 系统将使用视觉检测模型将连续文本分割成多个片段。

  • 接下来,这些连续的片段被合并成Token数不超过“Token数”的块。


Q&A 分块方法:

此块方法支持 excel 和 csv/txt 文件格式。

  • 如果文件是 excel 格式,则应由两个列组成 没有标题:一个提出问题,另一个用于答案, 答案列之前的问题列。多张纸是 只要列正确结构,就可以接受。

  • 如果文件是 csv/txt 格式 以 UTF-8 编码且用 TAB 作分开问题和答案的定界符。

  • 未能遵循上述规则的文本行将被忽略,并且 每个问答对将被认为是一个独特的部分。


Resume分块方法:

支持的文件格式为DOCX、PDF、TXT。

  • 简历有多种格式,就像一个人的个性一样,但我们经常必须将它们组织成结构化数据,以便于搜索。

  • 我们不是将简历分块,而是将简历解析为结构化数据。 作为HR,你可以扔掉所有的简历, 您只需与'RAGFlow'交谈即可列出所有符合资格的候选人。


Manual分块方法:

仅支持PDF。

  • 我们假设手册具有分层部分结构。 我们使用最低的部分标题作为对文档进行切片的枢轴。 因此,同一部分中的图和表不会被分割,并且块大小可能会很大。

image.png


Table分块方法:

支持XLSX和CSV/TXT格式文件。

  • 对于 csv 或 txt 文件,列之间的分隔符为 TAB。

  • 第一行必须是列标题。

  • 列标题必须是有意义的术语,以便我们的大语言模型能够理解。 列举一些同义词时最好使用斜杠'/'来分隔,甚至更好 使用方括号枚举值,例如 'gender/sex(male,female)'。

  • 表中的每一行都将被视为一个块。

image.png



Paper 分块方法:

仅支持PDF文件。

  • 如果我们的模型运行良好,论文将按其部分进行切片,例如摘要、1.1、1.2等。

  • 这样做的好处是LLM可以更好的概括论文中相关章节的内容, 产生更全面的答案,帮助读者更好地理解论文。 缺点是它增加了 LLM 对话的背景并增加了计算成本, 所以在对话过程中,你可以考虑减少‘topN’的设置。

image.png


Book分块方法:

支持的文件格式为DOCX、PDF、TXT。

  • 由于一本书很长,并不是所有部分都有用,如果是 PDF, 请为每本书设置页面范围,以消除负面影响并节省分析计算时间。


Laws分块方法:

支持的文件格式为DOCX、PDF、TXT。

  • 法律文件有非常严格的书写格式。 我们使用文本特征来检测分割点。

  • chunk的粒度与'ARTICLE'一致,所有上层文本都会包含在chunk中。


Presentation 分块方法:

支持的文件格式为PDF、PPTX。

  • 每个页面都将被视为一个块。 并且每个页面的缩略图都会被存储。

  • 您上传的所有PPT文件都会使用此方法自动分块,无需为每个PPT文件进行设置。

image.png


One分块方法:

支持的文件格式为DOCX、EXCEL、PDF、TXT。

  • 对于一个文档,它将被视为一个完整的块,根本不会被分割。

  • 如果你要总结的东西需要一篇文章的全部上下文,并且所选LLM的上下文长度覆盖了文档长度,你可以尝试这种方法。


Tag分块方法:

Tag 分块方法支持XLSX和CSV/TXT文件格式。

  • 使用“Tag”分块方法的知识库用作标签集.其他知识库可以把标签集当中的标签按照相似度匹配到自己对应的文本块中,对这些知识库的查询也将根据此标签集对自己进行标记。


  • 使用“标签”作为分块方法的知识库不参与 RAG 检索过程。


  • 标签集中的每个文本分块是都是相互独立的标签和标签描述的文本对。


  • 如果文件为XLSX格式,则它应该包含两列无标题:一列用于标签描述,另一列用于标签,标签描述列位于标签列之前。支持多个工作表,只要列结构正确即可。


  • 如果文件为 CSV/TXT 格式,则必须使用 UTF-8 编码并以 TAB 作为分隔符来分隔内容和标签。


  • 在标签列中,标签之间使用英文逗号分隔。不符合上述规则的文本行将被忽略。

2

文档解析器DeepDoc

其实在我们选择切片方法的同时,还有一个很重要的一个设置文档解析器:DeepDoc。


不同格式和不同检索要求的大量文档,准确的分析成为一项极具挑战性的任务。DeepDoc 就是为了这个目的而诞生的。到目前为止,DeepDoc 中有两个组成部分:视觉处理和解析器。


parser解析器:可以看到包括有如下的这些不同类型的文件解析器。


image.png


PDF、DOCX、EXCEL和PPT四种文档格式都有相应的解析器。最复杂的是PDF解析器,因为PDF具有灵活性。PDF解析器的输出包括:

  • 在PDF中有自己位置的文本块(页码和矩形位置)。

  • 带有PDF裁剪图像的表格,以及已经翻译成自然语言句子的内容。

  • 图中带标题和文字的图。


视觉处理包括了OCR、recognizer、LayoutRecognizer、TSR、init_in_out。


image.png



OCR 。由于许多文档都是以图像形式呈现的,或者至少能够转换为图像,因此OCR是文本提取的一个非常重要、基本,甚至通用的解决方案。


输入可以是图像或PDF的目录,或者单个图像、PDF文件。您可以查看文件夹 path_to_store_result ,其中有演示结果位置的图像,以及包含OCR文本的txt文件。


Recognizer:接收图像→预处理→模型推理→后处理→返回识别结果(包含类型、边界框和置信度)。


这个代码似乎是用于文档分析的视觉组件,可能用于识别文档中的表格、文本框、标题等元素。


布局识别(Layout recognition)。来自不同领域的文件可能有不同的布局,如报纸、杂志、书籍和简历在布局方面是不同的。只有当机器有准确的布局分析时,它才能决定这些文本部分是连续的还是不连续的,或者这个部分需要表结构识别(Table Structure Recognition,TSR)来处理,或者这个部件是一个图形并用这个标题来描述。我们有10个基本布局组件,涵盖了大多数情况:


  • 文本

  • 标题

  • 配图

  • 配图标题

  • 表格

  • 表格标题

  • 页头

  • 页尾

  • 参考引用

  • 公式


TSR(Table Structure Recognition,表结构识别)。数据表是一种常用的结构,用于表示包括数字或文本在内的数据。表的结构可能非常复杂,比如层次结构标题、跨单元格和投影行标题。除了TSR,我们还将内容重新组合成LLM可以很好理解的句子。TSR任务有五个标签:


  • 列标题

  • 行标题

  • 合并单元格


init_in_out 方法是一个用于初始化输入和输出的函数,主要功能是处理输入文件(图像或PDF)并准备相应的输出路径。这个函数在视觉识别流程中起到了准备数据的作用,为后续的识别过程提供了标准化的输入和输出路径。

3

总结

RagFlow在文档切片过程中提供了丰富的配置项供用户进行选择,大家在使用时也需要根据文档的内容和形式仔细进行选择。通过这些配置,可以看到提供的确实比dify在知识管理上有一定的优势。后续在针对RAGflow的其他特性在进行介绍。


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询