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 可以提供更好的结构化入口,但不能替代业务事实判断。

对比分析

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

方案方向 典型代表 适合场景 表格优先待测项 观察方式
传统 OCR Tesseract、PaddleOCR、通用 OCR API 扫描件、图片文字、简单票据 单元格文字、数字、单位、旋转、低清 抽样比对关键数字与表头
通用大模型直接读文档 多模态模型、文件上传能力 临时阅读、小样本分析 行列关系、页码证据、重复运行稳定性 固定问题多次询问,检查引用和数值
云厂商文档智能 Azure AI Document Intelligence、Google Document AI、Amazon Textract 云上表单、票据、行业模板 区域合规、字段结构、价格、额度、日志 用业务样本记录字段和权限边界
开源 PDF 工具 PyMuPDF、pdfplumber、pypdf 原生文本 PDF、轻量抽取 扫描页、复杂版面、跨页表格、公式 区分原生 PDF 与扫描 PDF 记录失败页
RAG 框架 loader LangChain 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、PPTX 6-10 财务表、参数表、图文混排、页眉页脚
表格材料 XLSX、PDF 表格、跨页表格 5-8 合并单元格、跨页表头、单位、行列关系
图片/扫描件 扫描 PDF、PNG、JPG 5-8 精准 OCR、多语言、低清、旋转、噪声
网页/HTML API 文档、产品文档、技术博客 3-5 HTML 表格、代码块、导航噪声、链接
Sciverse/SciBase 样本 论文、专利、实验说明、数据文档 3-5 AI-ready 数据、来源证据、科研 Agent 调用

评测维度

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

人工验收标准

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

失败案例记录方式

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

case_id doc_id 页码 parser 入口 失败类型 期望结果 实际结果 人工结论
case_001 paper_001 4 MinerU CLI table_header_shift 表头与列值一一对应 第二级表头错位 需复核
case_002 report_003 12-13 MinerU Open API cross_page_table_split 跨页表格保留续表关系 第二页表头缺失 不入库
case_003 scan_006 2 OCR adapter ocr_digit 数字和单位准确 0/O 混淆 需复核
case_004 paper_009 7 loader LangChain table_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 -b pipeline

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

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

curl --location --request POST "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 可用结构

from pathlib import Path
import json


def iter_table_elements(content_json: Path, doc_id: str):
    data = json.loads(content_json.read_text(encoding="utf-8"))
    for item in data.get("elements", []):
        if item.get("type") != "table":
            continue
        yield {
            "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 限制核对必须当天完成。MinerU llms.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
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐