文档解析在 RAG 中有什么作用,解析错误会带来哪些影响?
未标记
考查重点:结构提取与下游检索误差。解析把原文与标题、表格、页码转成可索引结构,漏列或乱序会让检索和引用都错;先校验解析,再调Embedding与生成
本题目录
参考答案
核心回答
文档解析负责把原始文件变成可检索、可理解、可定位的内容:既要读出文字,也要保留标题层级、段落顺序、表格行列,以及来源和页码等信息。解析之后才做切分、向量化和索引,所以它决定了后续检索实际能找到什么。
解析错误会沿链路传播:漏字、错字可能让关键词失配;表格错列、段落乱序会改变事实含义;标题或条件丢失会让片段失去适用范围;页码、坐标错误则会使引用定位不准。更换 Embedding 模型不能恢复已经丢掉的内容,排查时应先把解析结果与原文对照,再调整检索和生成。
解析不只是把文字读出来
- 内容提取:电子文档可读取文本层,扫描页通常需要
OCR;图表、公式、表格还需要相应的识别或结构化处理。 - 结构恢复:识别标题、正文、列表、表格等元素,恢复多栏阅读顺序,避免页眉页脚混进正文。随后切分时,尽量把条件与结论、表头与数据保留在一起。
- 来源定位:把文档标识、页码、章节和可用坐标与内容关联,供范围过滤、原文回查和引用展示使用。具体能保留哪些字段,取决于解析器。
解析与切分职责不同:前者恢复内容和结构,后者决定检索单元的大小与边界。即使每个字都识别正确,把表头与数值切到两块里,仍可能造成回答错误。
一个错误怎样影响最终回答
例如一份产品参数表有“型号、额定电压、适用温度”三列,解析时把第二行的电压与第一行的型号拼到一起。这个片段仍可能高度匹配用户问题,也能被正确地检索、重排,最终模型却会引用错误参数。
这类问题的根因在索引内容,而不在相似度。可以沿“原文区域 → 解析元素 → 切分片段 → 检索结果”逐段检查:文字是否遗漏、行列关系是否保留、单位和限定条件是否完整、引用能否落回原处。验收样本应包含扫描页、多栏、跨页表格和关键数字,不能只看任务有没有成功结束。
对应教程
- 《从零开始学 AI 智能体》第 19 章:索引阶段:解释加载、切分、向量化和存储的关系;本文补充版面、表格与解析错误的传播。
参考资料
- 国内:JavaGuide:RAG 文档处理与切分策略:参考阅读顺序、表格字段关联和分层校验的解释。
- 国内:Datawhale:数据加载:参考加载器提取文本、元数据并形成统一文档对象的职责。
- 国内:阿里云:文档理解:参考逻辑层级、版面和表格等结构化输出,以及不同解析方式的能力差异。
- 国内:PaddleOCR:PP-StructureV3 产线介绍:参考版面检测、文字识别、表格识别与阅读顺序恢复的分阶段处理方式。
- 国外:Unstructured:Partitioning:参考文档元素分类,以及文本提取、版面分析和
OCR策略的区别。 - 国外:PyMuPDF:Text:参考原始文本提取顺序与自然阅读顺序可能不同,以及按位置恢复顺序的解释。
RAGFlowPython
核心回答
RAGFlow 的文档解析把上传文件转换成带结构与来源位置的片段,再交给向量化和索引。以通用 PDF 解析选择 DeepDOC 为例,它通过文字识别、版面分析、表格结构分析和文本合并等阶段恢复内容,并非一次视觉大模型调用。
这些结果直接决定检索质量:如果型号被读错,关键词通道可能漏召回;表格串列会让检索命中的内容本身就错;页码或位置丢失又会影响原文定位。因此,需要同时检查解析内容、切块边界和来源位置,而不是只调向量相似度。
从解析任务到索引
Python 后端的文档解析接口调用 DocumentService.run()。对于未配置自定义解析流水线的文档,它通过 queue_tasks() 建立处理任务;后台执行器默认进入 TaskManager.run_refactored_task(),由 TaskHandler 组织执行。配置了 pipeline_id 的文档则进入数据流任务,不能将两条路径混成同一种解析流程。解析入口、任务路由、后台执行入口。
标准入库流程先从对象存储读取文件,经 ChunkService.build_chunks() 选择解析模块、生成片段,再由 EmbeddingService.embed_chunks() 计算向量,最后写入文档索引。解析与切分是向量化的上游,任务进度完成并不等于表格内容已经逐项正确。标准入库链、解析模块选择与调用。
DeepDOC 具体处理什么
通用解析模块会根据文件格式及 layout_recognize 配置选择解析方式。选用 DeepDOC 的 PDF 路径时,Pdf.__call__() 先处理页面图像与文字,再调用 _layouts_rec() 分析版面、_table_transformer_job() 识别表格结构、_text_merge() 合并文本,并提取表格、图片及位置标签,恢复段落衔接。PDF 多阶段解析。
例如产品手册中的一张参数表,真正要保留的是“哪个型号对应哪个数值、单位和条件”,而非页面里出现了哪些字。若型号正确但列错位,混合检索和重排仍可能把这个错误片段排在前面。排查应先对照原表检查行列关系,再看表头与数据是否被切开;只有内容正确后,调整检索权重才有意义。
方案取舍
有干净文本层、版式简单的材料,可以评估更轻的解析方式;扫描件、多栏和复杂表格则需要更强的识别与结构恢复,代价是处理耗时和模型资源。选型时用同一批原文件比较关键字段、阅读顺序、表格关系和后续问答,避免仅以输出文本长度或解析成功率判断效果。
相关面经
1 篇拼多多
Agent怎么解决的文档解析出错的问题
