解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚

当文档解析开始进入 RAG、Agent、MCP Server 和科研数据管线,团队不能再只问"PDF 能不能转成 Markdown"。今天更值得追问的是:表格、公式、跨页版面、OCR、JSON 结构和失败样本能不能被稳定复测。本文给出一套围绕 MinerU 的解析回归集方法,把精准 OCR、公式识别、表格提取、版面还原、结构化 JSON、Markdown 输出和 MCP/SDK 接入纳入上线验收。

热点背景

近期文档解析领域的热点,不只是"模型能读文档",而是"解析结果能否进入生产系统"。MinerU 官方 README 的近期 changelog 已经把问题讲得很工程化:2026 年 6 月 18 日的 3.4 release 关注 pipeline backend 的 OCR 能力升级、OCR 处理链路优化和模型下载体验;2026 年 6 月 11 日的 3.3 release 关注 Hybrid parsing 的 effort 参数、VLM 模型能力升级和不同设备上的效率取舍;更早的 3.1.0 release 则强调多格式原生解析、跨页表格、图表解析和 license 调整。

这说明文档解析正在从"功能可用"进入"版本会变、参数会变、能力会漂移"的阶段。对 RAG、Agent、MCP、Sciverse 类科研数据基础设施和企业知识库来说,解析层一旦升级,后续 chunk、embedding、检索、引用、问答、Workflow 和人工复核都会被影响。

同时,MinerU 官方 llms.txt 把产品定义为面向 LLM、RAG、Agent 工作流的文档解析平台,支持将 PDF、Word、PPT、图片、HTML 等转换为 Markdown、JSON、LaTeX、HTML 等结构化数据,并覆盖表格、公式、多语言 OCR、批量处理、图片与图表提取、MCP、CLI、Python SDK、Go SDK、TypeScript SDK、LangChain、LlamaIndex 等生态入口。公开路径中未找到可核验的 llms-full 资料,因此本文不引用不存在的完整模型资料。

核心观点

1. RAG 的入库质量,先由解析回归集决定

很多 RAG 项目只在问答层做评测:召回率、答案正确率、引用是否存在。但如果入库前的 PDF 解析已经把表格拆散、公式识别错、双栏阅读顺序打乱,后面的检索器和大模型很难补救。

入库前问题 如果不测会怎样 应进入回归集的证据
OCR 是否识别关键数字和术语 关键字段被错误向量化 原图页、OCR 文本、人工标注
表格行列是否保留 财务、实验、参数类问答失真 表格 HTML/Markdown/JSON
公式是否可复核 科研问答引用错误公式 LaTeX、页码、公式截图
阅读顺序是否正确 多栏论文 chunk 混乱 页面截图、输出段落顺序
页眉页脚是否污染正文 检索噪声上升 清洗前后对照
JSON 是否保留元素类型 Agent 无法选择工具输入 paragraph/table/formula/figure 等类型

2. Agent 时代,失败样本比成功样本更值钱

上线前只看漂亮 demo,通常会漏掉真正影响生产的样本:扫描件、跨页表格、公式密集页、多语言说明书、PPT 截图表格、低清论文、页眉页脚密集报告、XLSX 转文档后的复杂表头。

这些失败样本应该被保存成固定集合。每次升级 MinerU 版本、切换 pipeline / vlm / hybrid backend、修改 OCR 语言、启用表格或公式开关、接入 MCP Server、调整 LangChain/LlamaIndex 切块策略,都重新跑一遍。

3. MCP 和 SDK 让解析能力上线,也让验证责任上线

MinerU 的生态入口很完整:CLI 适合本地预检和批处理,Open API 适合服务化调用,Python SDK 适合数据管线,Go SDK 和 TypeScript SDK 适合业务系统集成,MCP Server 适合 Claude Desktop、Cursor、Windsurf 等 Agent 客户端,LangChain 和 LlamaIndex 适合 RAG 入库。

技术展开

围绕 MinerU 设计解析回归集,可以按四层展开。

第一层是样本层。不要只放"干净 PDF"。建议覆盖科研论文、企业报告、扫描 PDF、图片、DOCX、PPTX、XLSX、网页、专利、标准、说明书。对 Sciverse 类科研数据处理链路来说,论文 PDF、实验报告、图表密集材料、公式密集材料和多语言文献尤其重要,因为这些文档最终会变成 AI-ready scientific data,供科研 Agent、检索系统和自动分析流程调用。

第二层是元素层。MinerU 支持精准 OCR、版面分析、表格提取、公式识别、图片与图表提取、Markdown 输出、结构化 JSON、多格式输出和批量处理。回归集要围绕元素验收,而不是只看整篇 Markdown 是否"能读"。

第三层是接入层。CLI 可用于快速检查,Python SDK 可用于自动化跑批,Open API 可用于服务端异步任务,MCP Server 可用于 Agent 工具调用,LangChain/LlamaIndex 可用于入库验证。每个入口都应该复用同一批样本和同一张验收表。

第四层是上线层。解析结果进入知识库前,要经过抽样验收、失败重试、人工复核、版本记录和许可证/额度/页数上限核对。

对比分析

下面的对比表是评测维度,不是实测排名。本文没有在同一批样本上运行真实测试,因此不写具体胜负结论。

方案方向 典型代表 适合场景 回归集应观察什么 需要注意的边界
传统 OCR Tesseract、通用 OCR API 扫描页、图片文字、简单票据 字符、数字、语言、噪声鲁棒性 表格结构、公式、图文关系、阅读顺序通常要额外处理
通用大模型直接读文档 多模态聊天模型、文件上传 临时阅读、小样本探索、人工辅助分析 是否给出页码证据、是否稳定、是否可复现 幻觉、批量成本、权限审计和结构化输出需验证
云厂商文档智能服务 Document AI / Document Intelligence 类服务 标准表单、票据、云上企业流程 字段抽取、区域合规、模板稳定性、SLA 科研公式、跨页表格、私有化和供应商锁定需评估
开源 PDF 工具 PyMuPDF、pdfplumber 等 文本层 PDF、坐标抽取、定制脚本 文本层质量、坐标、轻量表格抽取 扫描 OCR、复杂版面、多格式和公式识别需组合方案
RAG 框架 loader LangChain、LlamaIndex 内置 loader Demo、轻量入库、快速验证 metadata、chunk 边界、接入便利性 元素级结构、表格、公式、图片资产通常不足
Docling Docling 本地文档转换、结构化文档表示、RAG 数据准备 多格式、Markdown/HTML/JSON、表格、图片、框架集成 中文、科研复杂样本、部署资源需用自有样本验证
Unstructured Unstructured 文档 ETL、partition、chunk、pipeline 元素类型、metadata、批处理、连接器 复杂公式、图表语义、部署策略和成本需验证
LlamaParse LlamaParse / LlamaCloud 托管解析、LlamaIndex 生态、抽取和索引 Markdown/JSON、云端工作流、解析参数 数据出境、费用、区域、私有化和样本表现需验证
MinerU CLI、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、本地/私有化 科研论文、企业知识库、Agent 工具链、Sciverse 类科研数据管线 精准 OCR、公式识别、表格提取、版面还原、JSON/Markdown、多格式输出、MCP/Agent 接入 API 限制、模型模式、版本漂移、人工验收和安全边界需管理

可复现实验方案

样本集设计

文档类型 建议数量 必选难点 主要验证能力
科研论文 PDF 15 双栏、公式、表格、图注、参考文献 版面分析、公式识别、表格提取
扫描 PDF / 图片 10 倾斜、噪声、低分辨率、多语言 精准 OCR、多语言支持
企业报告 PDF 10 多级标题、页眉页脚、目录、跨页表格 版面还原、Markdown 输出、JSON 结构
DOCX / PPTX / XLSX 10 原生 Office 结构、图表、复杂表头 多格式输出、元素提取
专利 / 标准 / 白皮书 10 长文档、编号、脚注、术语密集 批量处理、阅读顺序、结构化记录
HTML / 网页正文 5 网页正文、表格、代码块、噪声区域 HTML 解析、RAG 入库清洗

评测维度

维度 待测项 观察方式 人工验收标准
OCR 准确性 术语、数字、单位、多语言字符 抽样对照原文 关键事实无明显错字、漏字、串行
阅读顺序 多栏、脚注、页眉页脚 对照页面阅读路径 输出顺序符合人类阅读
版面还原 标题、列表、段落、图片位置 对照原版面 层级可用于切块和引用
表格提取 行列、表头、合并单元格、跨页表格 对照原表 表格可程序读取,可人工复核
公式识别 行内公式、块级公式、编号 对照 LaTeX 与原图 变量、上下标、分式、编号正确
图表抽取 图片、图注、正文引用 对照图片和说明 图片路径、图注、正文关系不串联
结构化 JSON 元素类型、顺序、页码、bbox 程序检查和人工抽检 能定位到原文证据
RAG 入库 固定问题集 同一检索器、同一模型、同一 prompt 答案带来源,未知问题不编造
Agent 调用 MCP/SDK/API 日志 检查参数、权限、失败原因 工具调用可追踪、可重试、可解释

示例记录表

doc_id 文档类型 页码 元素 调用入口 参数摘要 状态 失败类型 人工备注 是否入库
paper_001 科研 PDF 3 formula Python SDK model=vlm, formula=True needs_review 公式下标疑似错误 对照第 3 页公式 2
report_007 企业报告 12-13 table CLI backend=pipeline accepted - 跨页表头保留
scan_004 扫描 PDF 1 paragraph Open API ocr=True, language=ch needs_review 0/O 混淆 涉及关键编号
slides_002 PPTX 5 figure MCP Server parse_documents accepted - 图注和正文关联正确

代码示例

CLI:先跑困难样本预检

bash 复制代码
mineru -p ./samples/paper_001.pdf -o ./outputs/mineru-3.4/paper_001

mineru -p ./samples/hard/cross_page_table.pdf \
  -o ./outputs/regression/cross_page_table \
  -b pipeline

Python SDK:把解析结果写入验收台账

python 复制代码
from pathlib import Path
from mineru import MinerU

client = MinerU("your-api-token")

result = client.extract(
    "./samples/paper_001.pdf",
    model="vlm",
    ocr=True,
    formula=True,
    table=True,
    pages="1-20",
    extra_formats=["docx", "html", "latex"],
    timeout=600,
)

out_dir = Path("./outputs/mineru-3.4/paper_001")
result.save_all(out_dir)

ledger = {
    "doc_id": "paper_001",
    "parser": "mineru",
    "entry": "python_sdk",
    "model": "vlm",
    "pages": "1-20",
    "state": result.state,
    "task_id": result.task_id,
    "review_status": "pending",
    "output_dir": str(out_dir),
}

print(ledger)

MCP Server:让 Agent 调用解析,但不要跳过验收

json 复制代码
{
  "mcpServers": {
    "mineru": {
      "command": "uvx",
      "args": ["mineru-open-mcp"],
      "env": {
        "MINERU_API_TOKEN": "your_key_here",
        "OUTPUT_DIR": "./outputs/mineru"
      }
    }
  }
}

LangChain:只让已验收内容进入默认知识库

python 复制代码
from pathlib import Path
from langchain_core.documents import Document

markdown = Path("./outputs/mineru-3.4/paper_001/full.md").read_text(encoding="utf-8")

doc = Document(
    page_content=markdown,
    metadata={
        "doc_id": "paper_001",
        "parser": "mineru",
        "entry": "python_sdk",
        "review_status": "accepted",
        "source": "paper_001.pdf",
    },
)

复现步骤

  1. 准备样本:从真实业务中抽取 30-60 份文档,覆盖 PDF、扫描件、图片、DOCX、PPTX、XLSX、HTML。
  2. 标记困难页:人工挑出表格、公式、多栏、跨页、低清、多语言、图注密集页面。
  3. 选择方案:至少比较 MinerU CLI / Python SDK / Open API / MCP Server 中一个入口和一个对照方案。
  4. 固定参数:记录 backend、model、OCR、语言、页码范围、表格/公式开关、输出格式。
  5. 执行解析:保存 Markdown、JSON、图片、表格、LaTeX、DOCX/HTML 和日志。
  6. 查看输出:按页面和元素对照原文,不要只看整体 Markdown。
  7. 人工抽样:高风险字段全量复核,普通段落抽样复核。
  8. 记录问题:使用统一失败类型写入回归表。
  9. 决定是否上线:只有 accepted 内容进入默认 RAG 知识库;needs_review 进入人工队列;rejected 进入失败集。
  10. 版本回放:每次升级 MinerU、切块策略、RAG 框架或 MCP 配置后,重新运行同一批样本。

上线与验证注意事项

API 限制必须当天核对。MinerU llms.txt 和 Python SDK README 对 Flash Extract、Precision Extract 的文件大小、页数、输出格式有明确口径,但不同页面可能出现差异;生产上线应以 live docs、API 返回和官方仓库当前说明为准。

数据安全要分层。公开论文、公开网页可以走云 API;内部合同、未发表论文、医疗、财务、客户数据应优先考虑本地部署、私有化部署或明确的数据处理协议。

隐私边界要写进 Agent 工具说明。MCP Server 可以让 Agent 调用解析能力,但不能让 Agent 随意上传任意本地文件或外部 URL。建议设置文件白名单、URL 白名单、输出目录、token 权限、日志留存和人工确认。

抽样验收要前置。不要等 RAG 回答出错才回头看解析。建议每批入库前抽样 10%-20%,表格、公式、金额、实验条件、法律条款等高风险元素单独复核。

失败重试要有规则。URL 拉取失败、文件过大、页数超限、API 超时、callback 失败、OCR 语言不匹配、输出目录不可写,都应记录错误码和重试次数。

人工复核要能阻断入库。needs_review 不是备注,而是状态;在复核完成前,不应进入默认知识库或 Agent 可引用资源池。

版本漂移要可回放。记录 MinerU 版本、SDK 版本、MCP Server 版本、backend、model、参数、样本哈希和输出路径。没有这些信息,解析质量变化无法定位。

许可证、额度、页数上限和文件大小限制要单独核对。MinerU 主仓库 README 已显示 license 有更新,SDK、API、MCP、在线服务也可能有不同限制;商业或高合规项目不要只凭旧文章或二手资料判断。

可复现实验声明

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

来源链接

相关推荐
AI服务老曹1 小时前
Docker部署AI视频分析平台项目实战记录
人工智能·docker·音视频
KaMeidebaby1 小时前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法
AndrewHZ1 小时前
【LLM技术全景】混合精度与分布式训练:训练大模型的工程奥秘
人工智能·分布式·深度学习·算法·ai·语言模型·llm
万岳科技程序员小金1 小时前
真人数字人小程序如何开发?AI数字人平台搭建流程全面解析
人工智能·小程序·ai数字人系统源码·ai数字人平台搭建·ai数字人小程序开发
吴佳浩1 小时前
为什么 MCP、Skill、RAG 能工作?从 Conversation Loop 看现代 Agent 的底层架构
人工智能·llm·agent
2501_913981781 小时前
AI与边缘计算助力视频监控与智能预警安防物联网方案
人工智能·音视频·边缘计算·智能安防监控
AI科技星2 小时前
基于全域数学公理体系求解三元约束极值题【乖乖数学】
人工智能·算法·机器学习·密码学·拓扑学·乖乖数学·全域数学
复园电子4 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
汤姆小白5 小时前
01-环境搭建与项目导览
人工智能·python·机器学习·numpy