ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

图表不能只截图:多模态 RAG 需要可验收的数据化解析

图表不能只截图:多模态 RAG 需要可验收的数据化解析

图表不能只截图:多模态 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科研论文 PDF8-12双栏、公式、图表、图注、附录表
B财报/白皮书 PDF5-8柱状图、折线图、表格、脚注、单位
CPPTX 汇报5-8截图图表、流程图、图表标题、备注
D扫描件/图片5-8低清、倾斜、多语言、坐标轴小字
ESciverse 相关科研材料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-bpipeline
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", "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" }'

复现步骤

  1. 准备样本:选取科研论文、财报、PPT、扫描件、图片和历史失败样本,去除无授权敏感资料。
  2. 选择方案:至少比较 MinerU 与一个对照方案,例如 Docling、Unstructured、LlamaParse、传统 OCR 或 RAG loader。
  3. 固定参数:记录入口、OCR、语言、页码范围、表格/公式开关、输出格式、回调地址和超时设置。
  4. 执行解析:用 CLI 做小样本预检,用 Open API 或 SDK 做批量任务,用 MCP Server 验证 Agent 调用。
  5. 查看输出:同时检查 Markdown、JSON、HTML、LaTeX、图片资产、图表页和日志。
  6. 人工抽样:重点查坐标轴、单位、图例、图注、表格、公式、关键数字和来源页码。
  7. 记录问题:按 OCR、版面、表格、公式、图像、权限、API、超时和版本漂移分类。
  8. 决定是否上线:通过验收的元素进入 RAG;需复核的元素进入人审队列;严重错误进入失败集。
  9. 版本升级后重跑: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/
返回列表