RAGFlow 在此方面的设计理念是 “精细化、可配置、自动化”,旨在通过更智能的预处理来直接提升最终检索的质量。

核心哲学:与 LlamaIndex/LangChain 的差异

与需要编写代码来配置分块策略的框架不同,RAGFlow 通过图形化界面将分片过程产品化。它不满足于简单的“按字符数分割”,而是提供了多种针对不同文档类型的、开箱即用的高级解析策略,并且允许用户通过点选的方式进行微调。

其核心工作流程可以概括为以下几个关键阶段:


关键分片细节分析

1. 格式解析与结构理解(前置步骤)

在分片之前,RAGFlow 会深度解析文档以理解其结构,这与 LlamaIndex 使用 unstructured 库的理念相似,但全部集成在界面之下。

  • 文本元素提取:不仅提取文字,还提取字体、大小、位置等信息,用以推断标题、正文等层级结构。

  • 视觉元素处理(OCR):对于扫描版PDF或图片,集成OCR引擎(如PaddleOCR)来识别文字,并尽可能保留原始的版面布局信息。

  • 特殊元素识别:专门处理表格代码,这是RAGFlow的一大亮点。它能将表格提取为结构化数据(而非杂乱文本),并将代码按语言和逻辑结构进行分割。

2. 分块(Chunking)策略

RAGFlow 提供了多种可配置的分块算法,远不止简单的滑动窗口。

  • 精细化分段(Fine-grained Paragraphing)

    • 致力于将文档分割成语义完整的段落,而不是机械地按固定token数切割。这避免了将一个完整的语义单元割裂到两个不同的块中,从而保持了上下文的完整性。

  • 基于规则的分块

    • 按标题分割:系统可以识别 H1H2H3 等标题标签,并自动将文档按标题层级切分成不同的块。这是处理技术文档、手册等结构化文档的极佳方式。

    • 按句段分割:类似于 SentenceSplitter,但在句子边界处进行切割。

    • 自定义长度分割:也支持传统的按固定token数分割,并提供重叠区设置。

  • 表格智能处理

    • 策略:将整个表格作为一个独立的、特殊的“块”来处理。

    • 优势:检索时,如果查询涉及表格数据,整个表格会被完整地检索出来提供给LLM。这避免了表格被切散后LLM无法理解其行列关系的问题,极大提升了表格问答的准确性。

  • 代码智能处理

    • 策略:按编程语言进行语法感知的分割。例如,可以按函数、类等逻辑单元来分割代码块。

    • 优势:检索代码片段时更加精准,提供给LLM的上下文也是功能完整的代码块,提高了代码理解、生成和修复的准确性。

3. 用户可控的配置

这是RAGFlow最产品化的体现。用户无需修改代码,即可在UI界面上调整分片参数:

  • 分块长度(Chunk Size):直接设置块的大小(如512 tokens)。

  • 块重叠度(Chunk Overlap):设置相邻块之间的重叠token数,以保持上下文连贯。

  • 分段器(Segmenter):选择分块策略,比如“按标题分割”或“按句段分割”。

  • 语言选择:指定文档语言,以优化分词和分段效果。


与检索的关联:为什么这种分片方式更优?

RAGFlow 的精细分片设计直接决定了向量化(Embedding)的质量,从而直接影响检索的精度

  1. 提升检索准确性

    • 一个语义完整的块比一个被随意切断的块能生成质量更高、意义更明确的向量表示。

    • 当用户查询时,查询向量与这些高质量的块向量进行相似度匹配,结果自然更准确。

  2. 保障上下文质量

    • RAG的流程是:检索 -> 将检索到的块作为上下文提供给LLM -> LLM生成答案

    • 如果检索到的块是破碎的、缺乏上下文的,LLM就很难生成高质量的答案。

    • RAGFlow提供的“完整段落”、“完整表格”、“完整函数”作为上下文,为LLM提供了生成优质答案所需的全部信息,避免了幻觉。

  3. 优化多模态检索

    • 通过保留元数据和元素关系,为未来可能实现的多模态检索(如图表联动查询)打下了基础。

总结:RAGFlow 分片的特点

特性 分析
自动化 上传文档后自动进行解析、OCR、元素识别和分块,无需编写代码。
精细化 提供远超简单字符分割的高级策略,如按语义段落、标题、表格、代码进行分割。
可配置化 通过友好的UI界面提供分块参数配置,平衡自动化与控制力。
检索导向 一切分片策略的设计都以“产出最利于检索的文本块”为最终目的。
端到端集成 分片流程与后续的向量化、检索、聊天功能无缝集成,形成一个完整产品。

结论:RAGFlow 在分片上的细节体现了一种产品思维,它将学术界和工程界中公认的最佳实践(如保留语义完整性、特殊处理表格和代码)打包成一个开箱即用、可配置的工具。它降低了用户获得高质量RAG效果的门槛,用户不需要成为NLP专家也能构建出高效的智能问答系统。对于企业级应用,尤其是在处理大量含表格和代码的技术文档时,这种精细化的分片能力具有巨大价值。

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐