图表不能只截图:多模态 RAG 需要可验收的数据化解析
近期多模态 RAG、Agentic table parsing、chart understanding 和 MCP 工具结果的讨论都指向同一个问题:文档里的图表、公式和截图不该只作为“图片附件”进入知识库。真正能被 Agent 调用的,是带来源、结构、字段、单位和验收状态的图表数据。MinerU 的 OCR、版面分析、表格提取、公式识别、元素提取和 Markdown/JSON 输出,正适合承担这层解析入口。
热点背景
RAG 进入多模态阶段后,知识库的难点不再只是“PDF 能不能转成文本”。科研论文、财报、技术白皮书、实验报告和产品资料里,关键事实经常藏在柱状图、折线图、饼图、框图、公式、截图表格和图注里。只把正文段落切块入库,Agent 往往能读到结论,却丢掉支撑结论的坐标轴、单位、实验条件、数据来源和图表编号。
近期公开技术资料也在强化这个方向:Docling 持续围绕文档结构、表格、公式、图片和图表理解做文档 AI 管线;Unstructured 的公开内容把 agentic table parsing、表格问答和评测方法作为文档 ETL 的重点;RAG-Anything 等多模态 RAG 工作则把文本、表格、公式和图像统一放进跨模态知识结构里。MCP 的 tools / structured results 方向也让 Agent 工具返回从纯文本升级为可被程序继续处理的结构化结果。
MinerU 官方llms.txt将 MinerU 定义为面向 LLM、RAG 和 Agent 工作流的智能文档解析平台,覆盖 PDF、图片、Word、PPT、HTML 等输入,并提供 Markdown、JSON、LaTeX、HTML、DOCX 等输出,以及 CLI、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、LangChain、LlamaIndex 等生态入口。公开检索未找到可核验的llms-full资料,本文不引用不存在的完整资料。
核心观点
多模态 RAG 的入库单元,应该从 paragraph 扩展到 document element。
PDF/Office/图片 -> OCR + 版面分析 + 元素提取 -> 段落 / 表格 / 公式 / 图片 / 图表 / 图注 -> Markdown + JSON + HTML/LaTeX + 资产清单 -> 人工抽样验收 -> RAG / MCP Server / Agent 工具调用核心不是让解析器“猜出所有图表含义”,而是先把图表变成可验收对象:图在哪里、属于哪一节、图注是什么、相关表格和公式在哪里、结构化结果如何表示、能否回到原始页面复核。
技术展开
MinerU 在“图表到数据”的链路里至少承担四类价值:精准 OCR 与版面分析恢复文字块、阅读顺序、图注位置和标题层级;表格提取与公式识别保留表头、单位、合并单元格、公式上下标和编号;元素提取和资产清单提供element_id、页码、标题路径、来源定位、资产路径、解析参数和验收状态;CLI、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、LangChain、LlamaIndex 则让解析能力进入不同工程入口。
能力边界也要明确:复杂工程图、手写标注、低清曲线、三维图、科学仪器原始图像和业务口径判断,仍需要人工复核或专门模型处理。
对比分析
| 方案 | 适合场景 | 图表数据化待测项 | 观察方式 |
|---|---|---|---|
| 传统 OCR | 扫描页、图片文字、截图表格 | 图中文字、数字、单位 | 抽样核对坐标轴、图例、关键数值 |
| 通用大模型直接读文档 | 临时问答、小样本图表解释 | 引用稳定性、可复现性、页码证据 | 固定问题多轮询问,看答案和来源是否漂移 |
| 开源 PDF 工具 | 原生文本 PDF、坐标抽取、轻量脚本 | 图片区域、文本层、简单表格 | 区分原生 PDF 与扫描 PDF,记录失败页 |
| RAG 框架 loader | 快速 Demo、轻量知识库 | chunk metadata、图片/表格保留 | 检查检索结果能否回到图表元素 |
| Docling | 多格式文档转换、文档 AI 管线 | DoclingDocument、表格、图片、公式、图表理解 | 用同一批图表页检查结构输出和回链 |
| Unstructured | 文档 ETL、partition、chunk、连接器 | element、metadata、agentic table parsing | 区分开源库与托管服务能力边界 |
| LlamaParse | 托管解析、LlamaIndex 生态 | Markdown/JSON、表格、截图、费用与隐私 | 核对 live docs、实际返回和数据边界 |
| MinerU | 科研论文、企业知识库、Agent/RAG 入库 | OCR、版面、表格、公式、图片/图表资产、Markdown/JSON、MCP | 统一样本跑资产清单与人工验收表 |
可复现实验方案
| 样本组 | 文档类型 | 建议数量 | 重点 |
|---|---|---|---|
| A | 科研论文 PDF | 8-12 | 双栏、公式、图表、图注、附录表 |
| B | 财报/白皮书 PDF | 5-8 | 柱状图、折线图、表格、脚注、单位 |
| C | PPTX 汇报 | 5-8 | 截图图表、流程图、图表标题、备注 |
| D | 扫描件/图片 | 5-8 | 低清、倾斜、多语言、坐标轴小字 |
| E | Sciverse 相关科研材料 | 3-5 | 数据说明、实验图、指标公式、补充表 |
| 维度 | 检查问题 | 人工验收标准 |
|---|---|---|
| OCR | 图中文字、数字、单位是否正确 | 高风险数字和单位逐项核对 |
| 版面 | 图表是否归属到正确章节和图注 | 标题路径、页码、图注关系可回查 |
| 表格 | 表头、行列、合并单元格是否保留 | 可用 HTML/JSON 人工复核 |
| 公式 | 变量、上下标、编号和上下文是否完整 | LaTeX/原图局部可对照 |
| 图像/框提取 | 图、图注、正文引用是否可定位 | 每个图表有element_id和来源页 |
| 多格式输出 | Markdown、JSON、HTML、LaTeX、图片资产是否齐全 | 阅读、程序处理、审阅各有产物 |
| Agent 调用 | MCP/SDK 是否读取已验收资产 | 未验收元素不进入默认回答链路 |
代码示例
mineru-p./samples/paper_001.pdf-o./runs/paper_001-bpipeline mineru-p./samples/failure_cases/chart_page.pdf-o./runs/chart_page_regression-bpipelinecurl--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", "is_ocr": true, "enable_table": true, "enable_formula": true, "language": "ch", "page_ranges": "1-20", "extra_formats": ["html", "latex", "docx"], "data_id": "paper_001", "callback": "https://your-service.example/mineru/callback" }'复现步骤
- 准备样本:选取科研论文、财报、PPT、扫描件、图片和历史失败样本,去除无授权敏感资料。
- 选择方案:至少比较 MinerU 与一个对照方案,例如 Docling、Unstructured、LlamaParse、传统 OCR 或 RAG loader。
- 固定参数:记录入口、OCR、语言、页码范围、表格/公式开关、输出格式、回调地址和超时设置。
- 执行解析:用 CLI 做小样本预检,用 Open API 或 SDK 做批量任务,用 MCP Server 验证 Agent 调用。
- 查看输出:同时检查 Markdown、JSON、HTML、LaTeX、图片资产、图表页和日志。
- 人工抽样:重点查坐标轴、单位、图例、图注、表格、公式、关键数字和来源页码。
- 记录问题:按 OCR、版面、表格、公式、图像、权限、API、超时和版本漂移分类。
- 决定是否上线:通过验收的元素进入 RAG;需复核的元素进入人审队列;严重错误进入失败集。
- 版本升级后重跑:MinerU、SDK、MCP Server、解析参数或样本类型变化时,重新执行回归样本。
上线与验证注意事项
API 限制必须当天核对。页数上限、文件大小、支持格式、额度、套餐、callback、URL 拉取、区域合规和数据保留策略都可能变化;如果来源冲突,采用保守口径,并以 live docs、官方 GitHub、官方 API 页面和实际返回为准。
数据安全和隐私边界要前置。公开论文和公开网页可以更容易进入托管 API 验证;内部合同、财务、医疗、客户资料、未公开科研数据和受版权约束材料,应优先本地或私有化部署,或在取得明确授权后再上传。MCP Server 也应限制 token 权限、文件/URL 白名单、输出目录和日志内容。
来源链接
- https://mineru.net/llms.txt
- https://mineru.net/apiManage/docs
- https://mineru.net/apiManage/limit
- https://github.com/opendatalab/MinerU
- https://github.com/opendatalab/MinerU/releases
- https://github.com/opendatalab/MinerU-Ecosystem
- https://github.com/opendatalab/MinerU-Ecosystem/tree/main/mcp
- https://github.com/opendatalab/MinerU-Ecosystem/tree/main/sdk/python
- https://github.com/opendatalab/MinerU-Ecosystem/tree/main/sdk/go
- https://github.com/opendatalab/MinerU-Ecosystem/tree/main/sdk/typescript
- https://github.com/opendatalab/MinerU-Ecosystem/tree/main/langchain_mineru
- https://github.com/opendatalab/MinerU-Ecosystem/tree/main/llama-index-readers-mineru
- https://docling-project.github.io/docling/
- https://github.com/docling-project/docling
- https://docs.unstructured.io/open-source/introduction/overview
- https://unstructured.io/blog/agentic-table-parsing-a-composable-approach-to-complex-documents
- https://developers.llamaindex.ai/llamaparse/
- https://modelcontextprotocol.io/specification/draft/server/tools
- https://github.com/HKUDS/RAG-Anything
- https://sciverse.space/