表格不是段落:Agentic RAG 的文档解析验收,应该从表格开始
2026/7/28 19:16:11 网站建设 项目流程

ParseBench、SCORE-Bench、Docling 图表抽取和 Unstructured 的 agentic table parsing 都在提醒同一件事:RAG 和 Agent 不是只缺更长上下文,而是缺更可信的结构化输入。PDF、Office、扫描件和科研论文里的表格一旦被压平成段落,后面的检索、引用、计算和工具调用都会失真。MinerU 的表格提取、精准 OCR、版面还原、公式识别、Markdown/JSON 输出与 MCP/SDK 生态,适合放在“表格优先”的入库验收层。

热点背景

近期文档解析的公开热点,正在从“能不能抽出文字”转向“结构是否适合 Agent 使用”。ParseBench 将文档解析评测明确放到 AI agents 语境里,强调语义正确性,而不只是文本相似度;其公开页面把 tables、charts、content、semantic formatting、grounding 放在同一套评测维度中。Unstructured 的 SCORE-Bench 也指出,现代解析输出可能是 Markdown、HTML、JSON 或显式关系结构,传统 OCR 字符级指标很难公平衡量这些结构化结果,并单独把表格里的 cell content 与 cell-level index 作为关键观察项。

Docling 近期在图表理解上也释放了类似信号:图表不应只作为图片保存,而应尽量转成可验证的结构化表格,例如 chart-to-CSV、chart-to-summary 或 chart-to-code。对 RAG、Agent 和科研数据处理来说,表格、图表、公式和页面证据越来越像一等数据对象,而不是文本 chunk 的附属品。

MinerU 官方llms.txt将 MinerU 定义为面向 LLM、RAG 和 Agent 工作流的智能文档解析平台,可把 PDF、Word、PPT、图片、HTML 等转换为 Markdown、JSON、LaTeX、HTML 等结构化数据,并覆盖高级表格识别、公式识别、多语言 OCR、批量处理、图像与图表提取、MCP、CLI/SDK、LangChain、LlamaIndex 等入口。官方 API 文档显示,精准解析 API 支持pipelinevlmMinerU-HTML,可配置enable_tableenable_formulais_ocrpage_ranges,默认输出 Markdown/JSON,并可额外导出 docx、html、latex。公开路径中未找到可核验的llms-fullllms-full.txtllms-full.md资料,本文不引用不存在的完整模型资料。

这和 Sciverse / SciBase 类科研数据基础设施有天然关系。科研 Agent 面对的是论文、专利、实验说明、补充材料、图表、公式和数据表。若表格入库时行列关系、单位、页码、标题路径和来源证据丢失,Agent 后续即使能调用 MCP 工具,也很难可靠回答“表 2 的实验组是否支持结论”“某个指标是否跨论文可比”“图表背后的数值能否复算”。

核心观点

1. Agentic RAG 的入库对象,不应该只有 chunk

很多 RAG 系统默认把 PDF 转成 Markdown,再按长度切块。这对普通段落有效,但对表格不够。表格里的意义往往来自二维关系:表头、行名、列名、单位、脚注、跨页续表、合并单元格、图注、公式引用和页面位置。把它们压成一段连续文本,等于把可计算、可筛选、可复核的数据退化成描述性文字。

更稳的入库对象应该是DocumentElement

元素类型推荐保留字段为什么重要
段落文本、页码、标题路径、bbox支持检索和证据回看
表格HTML/CSV/JSON、表头、行列、单位、页码支持结构化问答与数值复核
公式LaTeX/MathML、编号、上下文、页码支持科研推理和公式引用
图片/图表资产路径、图注、页码、关联段落支持多模态检索和人工复核
元数据文件哈希、解析入口、模型版本、参数支持重跑、审计和版本漂移定位

MinerU 的价值在这里不是“多一个 PDF loader”,而是把精准 OCR、版面分析、表格提取、公式识别、元素提取、结构化 JSON、Markdown 输出、多格式输出、批量处理和 MCP/Agent 接入组织成一层可验收的文档结构化入口。

2. 表格解析是 RAG 质量的早期报警器

如果一个解析方案连表格都只能输出成混乱文本,通常也很难稳定处理双栏论文、图文混排、脚注、跨页内容和复杂 Office 文档。表格是文档解析最容易暴露问题的区域:OCR 错一个数字、表头错位一列、跨页表格丢掉续表标记,都会直接影响问答结论。

因此,表格优先不是只关心报表,而是把表格作为上线验收的压力测试。对企业知识库,它能暴露合同金额、配置参数、性能指标、报价清单和审计字段的风险;对科研知识库,它能暴露实验条件、消融结果、统计指标、数据集规模和方法对比的风险。

3. MCP 让解析可调用,也让表格错误更快传播

MCP 官方工具规范把工具暴露为带名称、描述和输入 schema 的可调用能力。放到 MinerU 场景里,Agent 可以通过 MCP Server 发起文档解析、获取 OCR 语言、处理文档输出。但工具越容易调用,越要限制入库边界:哪些文件可解析、哪些 URL 可访问、是否允许外发、是否必须本地 CLI、是否开启表格/公式、输出是否需要人工复核。

一个表格优先的 MCP 调用不应只返回“解析成功”,而要返回足够的验收线索:

{"tool":"parse_documents","arguments":{"source":"approved://paper_001.pdf","page_ranges":"1-12","enable_table":true,"enable_formula":true,"outputs":["markdown","json","html"]},"review_required":true,"table_review_queue":["page_4_table_1","page_9_table_2"]}

这类结构能让 Agent 调用解析能力,但不让未验收表格静默进入生产知识库。

技术展开

表格优先的文档解析层可以拆成五步。

第一步是输入分级。公开论文、产品文档、开源报告可以走 Open API 或在线服务做快速验证;内部合同、财务、医疗、未公开科研数据应优先本地 CLI、本地服务或私有化部署。样本进入系统前记录doc_id、来源、文件哈希、密级、页码范围、是否扫描、是否含表格/公式/图片。

第二步是解析执行。MinerU 可通过 CLI、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、LangChain、LlamaIndex 接入。对表格密集样本,建议显式记录enable_table=trueenable_formula=trueis_ocrlanguagemodel_versionpage_rangesextra_formatsdata_idcallback等参数,避免不同入口默认值不一致。

第三步是输出标准化。Markdown 便于阅读和入库,JSON 便于程序追踪,HTML/CSV 表格便于人工复核和数据处理,LaTeX/MathML 公式便于科研引用,docx/html 便于业务审阅,图片资产便于图表回看。表格不要只作为 Markdown 片段保存,至少要能还原行列、表头、单位、页码和来源。

第四步是人工抽样。表格页、公式页、扫描页、跨页页、图表页必须优先抽样。验收时不要只看“文本像不像”,而要看单元格内容、行列索引、表头对应、单位、脚注、跨页关系和页码证据。

第五步是失败回归。每个失败表格都应进入失败集。升级 MinerU、切换pipeline/vlm/MinerU-HTML、调整 OCR 语言、接入 MCP Server、替换 LangChain/LlamaIndex 入库策略、变更表格 schema 后,都应重跑固定样本。

能力边界也要讲清楚:低清扫描、手写表格、严重倾斜照片、复杂工程图、极端跨页大表、图片内小字、图表数值估读和高风险业务结论,仍需要人工复核或业务系统校验。MinerU 可以提供更好的结构化入口,但不能替代业务事实判断。

对比分析

下表是评测维度和观察方式,不是实测排名。本文没有在同一批样本、同一环境、同一版本和同一验收表上运行测试,因此不写具体胜负结论。

方案方向典型代表适合场景表格优先待测项观察方式
传统 OCRTesseract、PaddleOCR、通用 OCR API扫描件、图片文字、简单票据单元格文字、数字、单位、旋转、低清抽样比对关键数字与表头
通用大模型直接读文档多模态模型、文件上传能力临时阅读、小样本分析行列关系、页码证据、重复运行稳定性固定问题多次询问,检查引用和数值
云厂商文档智能Azure AI Document Intelligence、Google Document AI、Amazon Textract云上表单、票据、行业模板区域合规、字段结构、价格、额度、日志用业务样本记录字段和权限边界
开源 PDF 工具PyMuPDF、pdfplumber、pypdf原生文本 PDF、轻量抽取扫描页、复杂版面、跨页表格、公式区分原生 PDF 与扫描 PDF 记录失败页
RAG 框架 loaderLangChain loader、LlamaIndex reader快速 Demo、轻量知识库入库metadata、页码、元素类型、表格结构检查 chunk 是否能回溯单元格证据
专业解析框架Docling、Unstructured、LlamaParse文档 ETL、RAG 入库、结构化转换HTML/JSON/CSV、表格、图表、公式、部署方式统一样本和验收表,不写未实测胜负
MinerU 表格优先解析层CLI、Open API、SDK、MCP Server、LangChain、LlamaIndex科研论文、企业知识库、Agent 工具链、Sciverse 数据管线OCR、版面、表格提取、公式、JSON、Markdown、资产、trace记录参数、输出、失败页、人工验收和重跑差异

客观比较的重点不是证明某个工具永远更强,而是看它是否能进入同一套生产验收:输入相同、参数可复现、表格可还原、证据可追踪、失败可回归、版本变化可解释。

可复现实验方案

样本集设计

建议准备 30 到 60 份文档,先覆盖真实失败类型,而不是追求一次性大规模 benchmark。

样本类别文档类型建议数量重点观察
科研论文双栏 PDF、公式密集论文、实验表8-12表格标题、公式引用、页码、阅读顺序
企业报告年报、白皮书、PDF、DOCX、PPTX6-10财务表、参数表、图文混排、页眉页脚
表格材料XLSX、PDF 表格、跨页表格5-8合并单元格、跨页表头、单位、行列关系
图片/扫描件扫描 PDF、PNG、JPG5-8精准 OCR、多语言、低清、旋转、噪声
网页/HTMLAPI 文档、产品文档、技术博客3-5HTML 表格、代码块、导航噪声、链接
Sciverse/SciBase 样本论文、专利、实验说明、数据文档3-5AI-ready 数据、来源证据、科研 Agent 调用

评测维度

维度验收问题人工验收标准
OCR单元格文字、数字、单位、专有名词是否正确关键字段零容忍,普通错字记录严重级别
版面还原表格前后段落、标题、脚注、页眉页脚是否合理阅读顺序符合原文,不污染 chunk
表格提取行列、表头、合并单元格、跨页关系是否保留关键表格可按单元格复核
公式识别公式是否转为 LaTeX/MathML,是否关联表格说明上下标、编号、变量符号可人工核对
元素提取图片、图表、图注、资产路径是否可追踪Markdown 与 JSON 能回到原文页面
输出结构Markdown、JSON、HTML/CSV、docx/html/latex 是否满足流程阅读、人审、入库、程序处理各有产物
RAG 入库chunk 是否带页码、元素类型、标题路径问答结果能回溯到表格证据
MCP/Agent 接入工具调用是否记录参数、权限、输出和失败状态有工具名、参数、状态、输出目录、错误

人工验收标准

结论标准处理动作
通过关键表格、正文顺序、公式、页码和来源元数据满足业务使用允许入库
需复核少量 OCR、行列或版面问题,但可人工修正暂缓入库,进入复核队列
不入库表格、公式、页码、章节或关键事实严重损坏阻断入库,加入失败集

失败案例记录方式

每个失败案例至少保留原文页码、解析器、入口、参数、期望、实际结果和严重级别。

case_iddoc_id页码parser入口失败类型期望结果实际结果人工结论
case_001paper_0014MinerUCLItable_header_shift表头与列值一一对应第二级表头错位需复核
case_002report_00312-13MinerUOpen APIcross_page_table_split跨页表格保留续表关系第二页表头缺失不入库
case_003scan_0062OCRadapterocr_digit数字和单位准确0/O混淆需复核
case_004paper_0097loaderLangChaintable_as_plain_text表格保留 HTML/CSV 结构被压平成段落不入库

待读者替换样本运行说明

读者应把示例样本替换为自己的论文、合同、手册、PPT、Excel、扫描件和网页资料。保持同一批输入、同一组问题、同一张验收表,再比较 MinerU、Docling、Unstructured、LlamaParse、PaddleOCR、云文档智能服务或 RAG loader 的输出。没有真实重跑之前,不要把观察维度写成胜负结论。

代码示例

CLI:先固定表格密集页的解析产物

mineru-p./samples/report-with-tables.pdf-o./runs/report-tables-bpipeline

预检阶段不要只看 Markdown。至少检查 JSON、表格 HTML、图片资产、公式、页码和失败日志,再把结果写入验收表。

Open API:显式开启表格、公式和 OCR 参数

curl--location--requestPOST"https://mineru.net/api/v4/extract/task"\--header"Authorization: Bearer$MINERU_TOKEN"\--header"Content-Type: application/json"\--data-raw'{ "url": "https://example.com/public-paper.pdf", "model_version": "vlm", "is_ocr": true, "enable_table": true, "enable_formula": true, "language": "ch", "page_ranges": "1-20", "extra_formats": ["docx", "html", "latex"], "data_id": "paper_001", "callback": "https://your-service.example/mineru/callback", "seed": "callback_signing_seed" }'

上线时记录task_idtrace_iddata_idmodel_version、页码范围、输出格式、callback 验签状态和当天核对到的 API 限制。涉及非公开资料时,先确认是否允许外发。

Python:把表格元素映射为 RAG 可用结构

frompathlibimportPathimportjsondefiter_table_elements(content_json:Path,doc_id:str):data=json.loads(content_json.read_text(encoding="utf-8"))foritemindata.get("elements",[]):ifitem.get("type")!="table":continueyield{"doc_id":doc_id,"element_id":item.get("id"),"type":"table","page":item.get("page"),"title_path":item.get("title_path",[]),"html":item.get("html"),"markdown":item.get("markdown"),"source":f"{doc_id}#page={item.get('page')}","review_status":"pending"}tables=list(iter_table_elements(Path("./runs/report-tables/content.json"),"report_001"))print(json.dumps(tables[:2],ensure_ascii=False,indent=2))

不同 MinerU 入口和版本的 JSON 字段可能不同,示例重点是保存页码、元素类型、表格结构和复核状态。实际映射应以当前输出文件为准。

MCP Server:让 Agent 调用解析能力,但保留验收队列

{"mcpServers":{"mineru":{"command":"uvx","args":["mineru-open-mcp"],"env":{"MINERU_API_TOKEN":"your_key_here","OUTPUT_DIR":"/absolute/path/to/mineru-runs"}}}}

生产环境建议只允许受控目录和受控 URL。Agent 可以发起解析,但表格页、公式页、扫描页和图表页应进入人工抽样队列。

复现步骤

  1. 准备样本:收集 PDF、DOCX、PPTX、XLSX、扫描件、网页和科研资料,记录来源、授权、文件哈希和密级。
  2. 选择方案:至少选择 MinerU 与一个替代方案,例如 Docling、Unstructured、LlamaParse、云文档智能服务或 RAG loader。
  3. 固定表格样本:标注每份文档中的关键表格页、跨页表、公式关联页和图表页。
  4. 执行解析:用 CLI 做本地预检,用 Open API 或 MCP Server 处理允许外发的公开样本,用本地部署处理敏感样本。
  5. 查看输出:同时检查 Markdown、JSON、HTML/CSV 表格、docx/html/latex、图片资产和失败日志。
  6. 人工抽样:逐项核对单元格内容、行列索引、表头、单位、脚注、页码和标题路径。
  7. 记录问题:把失败页、失败类型、期望结果、实际结果、入口和参数写入失败表。
  8. 决定是否上线:只有通过验收的表格和文档元素进入 LangChain、LlamaIndex、自研知识库或 Sciverse 数据层。
  9. 建立回归集:升级 MinerU、SDK、MCP Server、RAG 框架或切块策略后,重新跑固定失败集。

上线与验证注意事项

API 限制核对必须当天完成。MinerUllms.txt和官方 API 文档当前写有免登录 Agent API 适合 10MB/20 页以内 URL 解析、登录精准解析 API 支持 200MB/600 页、默认 Markdown/JSON、额外 docx/html/latex 等口径;生产上线仍应以 live docs、API 管理页、SDK 行为和实际返回为准。

数据安全要前置。公开论文和公开网页可以走托管 API;内部合同、医疗、财务、客户资料、未公开科研数据应优先本地 CLI、本地 API 或私有化部署。不要让 Agent 自动把未知文件或 URL 发往外部服务。

隐私边界要写进策略。限制输入目录、输出目录、URL allowlist、callback 域名、token scope、日志字段和临时文件保留时间。MCP Server 不应默认拥有任意本地路径和所有网络访问权限。

抽样验收要优先覆盖高风险页。表格页、公式页、扫描页、跨页页、图表页和含关键数值的页面,应比普通段落获得更高抽样比例。验收结论至少分为通过、需复核、不入库三档。

失败重试要可观察。记录失败阶段、错误码、页码范围、重试次数、工具参数、API task_id、MCP 调用记录和输出目录。不要把半成品 Markdown 自动写入生产知识库。

人工复核不可省。低清扫描、复杂表头、跨页合并、图表数值估读、公式密集页和高风险业务字段,都应保留人工验收入口。

版本漂移要可回放。MinerU、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、LangChain、LlamaIndex、模型模式、OCR 语言和默认参数变化,都可能改变输出结构。生产系统应保留解析版本,并在升级前重跑固定回归集。

许可证、额度和页数上限要保守核对。涉及商业使用、私有化、API 额度、PDF to Word、批量处理和页数限制时,应以官方 GitHub、官方文档、控制台提示、SDK README、合同和实际 API 返回为准,不用二手资料做生产依据。

可复现实验声明

本文未包含官方实测跑分,评测部分为可复现实验方案和示例记录表,读者需替换自己的样本运行。

来源链接

  • https://mineru.net/llms.txt
  • https://mineru.net/doc/docs/index_en/
  • https://github.com/opendatalab/MinerU
  • https://github.com/opendatalab/MinerU-Ecosystem
  • https://mineru.net/ecosystem
  • https://www.parsebench.ai/
  • https://arxiv.org/abs/2604.08538
  • https://unstructured.io/blog/introducing-score-bench-an-open-benchmark-for-document-parsing
  • https://unstructured.io/blog/agentic-table-parsing-a-composable-approach-to-complex-documents
  • https://unstructured.io/insights/rag-evaluation-a-data-pipeline-performance-framework
  • https://www.docling.ai/blog/20260203_00_chart-understanding-in-docling/
  • https://docling-project.github.io/docling/reference/pipeline_options/
  • https://www.ibm.com/granite/docs/models/vision
  • https://docs.cloud.llamaindex.ai/llamaparse/getting_started
  • https://modelcontextprotocol.io/specification/2025-06-18/server/tools
  • https://sciverse.space/docs

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询