许多年轻人在学习音乐时学会了爱。——莱杰

https://github.com/opendatalab/MinerU

MinerU:把复杂文档驯服成 Markdown 与 JSON 的开源“采矿师”

在大模型时代,文档不再只是给人看的材料,它越来越像一座座等待开采的矿山。

PDF 里埋着正文、标题、公式、表格、图片、脚注、多栏排版、扫描噪声,甚至还有一些让人看了就头疼的乱码和手写内容。你以为自己拿到的是一份文档,实际上常常拿到的是一团结构复杂、语义交错、机器难以下口的原始矿石。

而 MinerU,正像一位经验老到、眼神毒辣、动作麻利的“文档采矿师”,站在文档入口处说:

把它交给我,我来把这些复杂材料整理成大模型真正能读、能检索、能推理、能接入工作流的 Markdown 和 JSON。

MinerU 是 OpenDataLab 开源的文档解析工具,项目 description 说得非常直接:它可以把复杂文档,比如 PDF 和 Office 文档,转换成适合 LLM 使用的 Markdown 和 JSON,服务于 Agentic workflows。这个定位非常清晰,也非常有时代感。它不是单纯做一个“提取文本的小工具”,而是冲着 LLM、RAG、Agent 这些现代 AI 工作流来的。

如果把传统文档处理工具比作“搬运工”,那 MinerU 更像一个有组织能力的档案整理师、一个懂版式的编辑、一个会看公式和表格的研究助理,再加上一个知道如何对接 Agent 系统的工程搭档。它做的不只是读出内容,而是尽可能把文档重新整理成机器可理解、下游系统可消费的结构化结果。

它到底是什么

MinerU 是一个高精度文档解析引擎,支持把 PDF、图片、DOCXPPTXXLSX、网页等输入,转换为结构化的 Markdown 和 JSON,用于后续的检索、抽取、预训练、RAG 和 Agent 工作流。

它在 README 里把自己的能力范围写得很明确:

  • 原生支持 DOCXPPTXXLSX 解析
  • 公式可以转成 LaTeX
  • 表格可以转成 HTML
  • 能较准确地重建复杂版面布局
  • 支持扫描件、手写内容、多栏排版、跨页表格合并
  • 输出遵循人类阅读顺序,并自动去除页眉页脚
  • 采用 VLM + OCR 双引擎
  • OCR 支持 109 种语言
  • 提供 CLI、REST API、Docker、Python / Go / TypeScript SDK
  • 可以集成进 LangChain、LlamaIndex、Dify、FastGPT、RAGFlow、Flowise 等框架
  • 还提供 MCP Server,能与 Cursor、Claude Desktop、Windsurf 等 AI 编程工具协同

读到这里,你会发现 MinerU 的野心并不小。

它不是只盯着“解析一个 PDF 文件”这件事,而是在试图打通从文档输入,到结构化理解,再到大模型应用接入的整条链路。你可以把它理解为文档世界通向 LLM 世界的一条转换通道。那些原本横七竖八躺在 PDF、PPT、Word、表格文件里的内容,经它处理后,会排队站好,穿上统一制服,成为真正适合机器理解的素材。

MinerU 最迷人的地方,不只是能解析,而是“懂文档”

很多工具也能抽文本,但抽出来的结果常常像刚从碎纸机里捡回来的纸条,字是字,段落是段落,可逻辑和结构已经散了。

MinerU 想做的不是“捞内容”,而是“还原阅读体验”。

README 里提到,它会尽量:

  • 去掉页眉、页脚、页码、脚注等干扰项
  • 按人类阅读顺序输出文本
  • 适配单栏、多栏和复杂布局
  • 保留标题、段落、列表等原始结构
  • 提取图片、图片描述、表格、表格标题和脚注
  • 自动识别并转换公式为 LaTeX
  • 自动识别并转换表格为 HTML
  • 自动检测扫描版 PDF 和乱码 PDF,并启用 OCR

这一点特别关键。

因为对于 RAG、知识库、智能问答、学术资料处理、研报解析、合同抽取、论文预处理这些场景来说,最怕的不是“没提取出来”,而是“提取出来了,但顺序错了、结构乱了、公式没了、表格塌了”。

MinerU 就像一个很在意细节的整理师。别人看到一页论文时,也许只会说“这是一页纸”;它会说:

这里有标题,这里有正文,这里有多栏结构,这里有跨页表格,这里有公式,这里这部分不该算正文,这里应该按阅读顺序重新组织。

这种“不是看见字就算完成,而是尽量理解文档形态”的能力,才让它真正有资格走进 LLM 工作流里。

它从哪里来

MinerU 诞生于 InternLM 的预训练过程中。README 提到,它最初聚焦于解决科学文献中的符号转换问题,并希望为科技数据的整理与应用做出贡献。

这个出身很有意思。

很多优秀的基础设施产品,往往不是从“我要做一个炫酷产品”开始,而是从“我真的被这个问题折磨得受不了了”开始。预训练阶段对高质量数据的要求极高,科学文献又是出了名的难啃,公式、表格、图表、复杂排版、扫描质量参差不齐,随便一个环节处理不好,后续的数据质量就会一路打折。

所以 MinerU 的成长逻辑非常朴素,也非常扎实:它不是凭空设计出来的,而是在真实的大规模数据处理场景中被需要、被打磨、被推动着成长起来的。

这种工具通常有一个共同特点:不花哨,但很能打。

它支持什么输入和输出

从 README 给出的信息看,MinerU 支持的输入类型已经相当丰富:

  • PDF
  • 图片
  • DOCX
  • PPTX
  • XLSX

输出方面,它支持多种机器可读格式,包括:

  • 面向多模态和 NLP 场景的 Markdown
  • 按阅读顺序排序的 JSON
  • 较丰富的中间结果格式
  • 多种可视化结果,包括版面可视化和 span 可视化

这就意味着,它既可以做最终产物输出,也可以参与调试与质检流程。

有些工具像只会交“期末答卷”的学生,最后丢给你一个结果,至于过程怎么来的,你自己猜。MinerU 则更像一个愿意把草稿纸也摊开给你看的同学:它不仅给你结果,还愿意给你布局可视化、span 可视化,方便你判断解析质量,看看哪里对了,哪里还有提升空间。

对于工程团队来说,这种可观察性非常重要。

这位“采矿师”有什么看家本领

如果要用一种拟人化的方式来形容 MinerU,我会说,它像一位同时具备这几种能力的文档专家:

它像排版编辑

看到单栏、多栏、复杂布局,它不会慌。它知道阅读顺序的重要性,也知道页眉页脚常常只是噪声。

它像学术助理

看到公式,它会努力把它们整理成 LaTeX。看到表格,它会尽量还原成 HTML。对于论文、技术报告、实验文档,这种能力尤其有价值。

它像 OCR 老师傅

如果文档是扫描版,或者文本层已经乱到让人怀疑人生,它会启用 OCR,而且支持 109 种语言。

它像数据工程师

它输出 Markdown 和 JSON,不是为了“看起来整齐”,而是为了后续检索、抽取、训练、索引和推理能够顺畅接力。

它像 AI 工作流接口人

它自带 CLI、FastAPI、Gradio WebUI,还能接 MCP Server、LangChain、Dify、FastGPT、LlamaIndex、Flowise、RAGFlow 等生态。这种开放性意味着它不想当一个孤岛,而是愿意积极融入你的系统。

为 LLM、RAG、Agent 而生,这点非常重要

MinerU README 里反复强调一个核心方向:它服务于 LLM、RAG、Agent 工作流。

这和很多旧时代的文档工具有本质区别。

过去的工具可能更关心:

  • 能不能导出 txt
  • 能不能转成图片
  • 能不能抽取一部分字段

而 MinerU 更关心:

  • 这个输出是不是适合做知识切片
  • 是不是保留了足够的结构信息
  • 下游大模型是否能更稳定理解
  • 能不能在检索时减少语义错位
  • 能不能被 Agent 工作流直接消费

换句话说,MinerU 是站在“下游 AI 系统真正需要什么”的角度来重新定义文档解析的。

这也是它非常吸引人的地方。它不是把文档解析当作终点,而是把它当作整个智能工作流的起点。

支持的集成生态相当豪华

README 中列出了它的集成方向:

  • AI Coding Tools:MCP Server,可用于 Cursor、Claude Desktop、Windsurf
  • RAG Frameworks:LangChain、LlamaIndex、RAGFlow、RAG-Anything、Flowise、Dify、FastGPT
  • 开发接口:Python / Go / TypeScript SDK、CLI、REST API、Docker
  • 无代码体验:在线版、Gradio WebUI、桌面客户端

这份名单的意思其实很明确:MinerU 并不打算把自己关在“论文解析器”这个狭窄房间里,它想成为各种 AI 应用栈中的文档入口层。

你可以把它接进研发系统,做技术文档入库。
你可以把它接进知识库,做 PDF 与 Office 文档结构化。
你可以把它接进 Agent 流程,让智能体直接消费整理后的内容。
你也可以把它作为离线私有部署能力的一部分,放在企业内网里处理敏感材料。

它的角色很像一个稳健的中间层:站在原始文档和智能系统之间,把混乱翻译成秩序。

快速开始很直接,命令行也很友好

如果你不想先研究一大堆配置,MinerU 的入门路径并不拧巴。

安装方式

README 给出了 pip 或 uv 的安装方式:

1
2
3
pip install --upgrade pip
pip install uv
uv pip install -U "mineru[all]"

如果你更喜欢从源码安装:

1
2
3
git clone https://github.com/opendatalab/MinerU.git
cd MinerU
uv pip install -e .[all]

从说明看,mineru[all] 包含全部核心特性,兼容 Windows、Linux、macOS,适合大多数用户。这个态度挺像一个做事周全的工程师:别让用户在门口就被依赖选项绊倒,先把常用能力一把配齐。

最简单的解析命令

如果你的设备满足 GPU 加速要求,那么最直接的方式就是:

1
mineru -p <input_path> -o <output_path>

如果设备不满足 GPU 加速要求,也可以显式指定 pipeline 后端,在纯 CPU 环境运行:

1
mineru -p <input_path> -o <output_path> -b pipeline

这两条命令很像 MinerU 的两种性格。

一种是精力充沛、设备在线时的高效状态:来,把活交给我,速度和效果都尽量拉满。

另一种是踏实务实、资源有限时的可靠状态:没关系,没有强 GPU 也能干,我换个后端继续做。

这种“既追求高精度,也照顾兼容性”的姿态,往往最能打动真实用户。因为现实世界里的部署环境,从来都不是理想实验室。

后端设计很有层次感

MinerU 的 README 还列出了多种解析后端,大致包括:

  • pipeline
  • hybrid
  • vlm
  • *-http-client

它们面向不同的硬件条件和精度需求。

pipeline

这个后端更强调兼容性,支持纯 CPU,也支持 GPU。适合希望稳定落地、硬件资源相对克制的场景。README 里还强调它快速、稳定、低幻觉。

hybrid

这个后端更偏高精度路线,并且有 effort 参数可调。用户可以在解析速度、解析精度、功能需求之间做平衡。默认使用 effort=medium,而 effort=high 则适合追求最高准确率或需要图像分析支持的场景。

vlm

这是典型的视觉语言模型路线,硬件要求更高,但解析能力也更强。

http-client 方式

如果你已经有兼容 OpenAI API 的服务,无论是本地模型服务还是远端推理服务,也可以通过 *-http-client 方式接入。

这套设计很像一个经验丰富的系统架构师在说:

你不用被迫接受唯一解。你硬件富裕时,可以冲更高精度;你资源有限时,也有稳定的落地方式;你已有模型服务时,还能直接复用现有基础设施。

这种后端分层能力,意味着 MinerU 不只是一个模型壳子,而是一个认真考虑部署现实的工程系统。

它不是只会跑在“高配机器”上

README 提到,MinerU 支持:

  • Windows
  • Linux
  • macOS

还支持:

  • 纯 CPU 环境
  • GPU / MPS 加速

其中 pipeline 后端支持纯 CPU,这一点非常关键。因为并不是每个团队都能随手掏出一台高显存 GPU 服务器,也不是每个用户都愿意为了一个文档解析任务先搭一个复杂推理集群。

MinerU 在这里表现得很像一个脾气不错的技术同伴:条件好,我能跑得更猛;条件一般,我也不撂挑子。

在线体验和本地部署都照顾到了

如果你只是想先试试效果,它提供了在线 web 应用,也提供基于 Gradio 的在线 demo。

如果你更在意可控性和私有化,也可以本地部署,甚至使用 Docker。

README 里明确提到:

  • 官方在线版功能与客户端一致,界面完整,功能丰富
  • Gradio 在线 demo 更轻量,只提供核心解析能力
  • Docker 方式适合快速搭环境和规避部分环境兼容问题
  • Docker 部署支持 Linux 和带 WSL2 的 Windows
  • macOS 更适合使用前面的安装方式

这种安排很合理。它既欢迎“我先试一下”的轻量用户,也认真服务“我要落地到生产环境”的工程团队。

它最近在进化什么

从 README 的 changelog 可以看出,MinerU 更新节奏相当积极,而且方向很明确:围绕解析能力、系统工程能力和部署体验持续打磨。

3.4 版本

重点在于 pipeline 后端的 OCR 能力升级、OCR 流程优化、模型下载体验优化。

其中包括:

  • pipeline 后端 OCR 模型升级为 PP-OCRv6
  • OCR 精度提升
  • OCR 处理速度提升明显
  • 首次安装时优化模型源选择
  • 优先复用本地缓存,减少重复下载

这像是在给一个原本已经很勤快的工人换上更顺手的工具,再顺便把仓库动线也重新规划了一遍。

3.3 版本

重点在于 Hybrid 后端性能优化和 VLM 模型升级。

其中 effort 参数的加入很值得关注,它让用户可以更细粒度地平衡精度和速度。默认 medium 的策略,也说明团队在认真考虑大多数实际使用场景,而不是单纯追求榜单上的极限数字。

3.1.0 版本

重点包括:

  • 许可证升级
  • 主 VLM 模型升级
  • 新增对 PPTXXLSX 的原生解析支持

这意味着 MinerU 正从“擅长 PDF 解析”的印象,逐步成长为“更完整的多格式文档理解工具”。

3.0.0 版本

这是一次系统性升级,涉及:

  • 原生 DOCX 解析
  • pipeline 后端能力提升
  • API / CLI / Router 升级
  • 部署与可用性优化
  • 更好的长文档支持
  • 更好的多线程并发推理
  • 更方便的一站式多 GPU 部署思路

读这些更新记录时,你能明显感到一个项目在成长中的节奏感。它不是随便堆功能,而是在沿着“更强解析能力、更低使用门槛、更稳工程落地”这条主线持续前进。

为什么它会让开发者和数据工程团队心动

因为 MinerU 碰到的是一个又普遍、又长期、又难处理的问题。

现实世界里,文档一直是非结构化数据的重要来源,但也是最让人头疼的一类输入:

  • 格式多
  • 结构复杂
  • 质量不稳定
  • 扫描件和图片型文档难处理
  • 表格和公式尤其容易翻车
  • 给大模型直接喂原文,经常效果很差

MinerU 的价值就在于,它不是简单把文本抠出来,而是尽可能把文档变成 AI 系统愿意吃、也吃得动的样子。

对于不同角色,它都有吸引力:

对做 RAG 的人来说

它能提供更有结构、阅读顺序更合理、噪声更少的 Markdown / JSON 输入,有助于提升切片和检索质量。

对做 Agent 的人来说

它能把复杂文档转成更适合工作流消费的结果,让智能体不至于一上来就面对一堆混乱文本。

对做数据预处理的人来说

它可以在论文、研报、表格文件、Office 文档处理中显著减少人工整理成本。

对企业私有部署团队来说

它支持本地、离线、私有化部署路线,也提供 API、CLI、Docker、多服务路由能力。

对研究人员来说

公式、表格、复杂布局、多语言 OCR,都是很实用的能力点。

一个很真实的使用想象

你可以想象这样一个场景。

你面前摆着一大堆 PDF、DOCX、PPTX 和 XLSX 文件,里面有会议材料、研报、论文、实验记录、流程文档、扫描件合同。它们像一群性格各异、说话方式混乱的人,一股脑同时冲进系统门口。

这时候,MinerU 不会大喊“太乱了,我不干了”。

它更像一个很能控场的接待员,先把门打开,再一个个安排:

你是 PDF,先这边排队。
你是扫描件,我给你叫 OCR。
你这边有公式,别急,我给你转成 LaTeX。
你这个表格别散,整理成 HTML 再走。
你这个页眉页脚别掺和正文,先请出去。
你这个多栏版面,别乱跑,我按阅读顺序重新排。

最后,它把这群原本吵吵闹闹的输入,整理成一份份规规矩矩、适合大模型继续处理的 Markdown 和 JSON。

这就是 MinerU 最吸引人的地方:它不只是功能列表上的强,而是让人能直观感受到,它真的在努力理解文档这件事。

如果你准备上手,建议怎么开始

如果你只是想快速感受它的能力,可以这样走:

路线一:先试在线版

先用官方在线体验或 Gradio demo 看结果,感受它对复杂文档的处理方式。

路线二:本地安装直接跑 CLI

安装后先挑一份最典型的文档,比如论文、复杂排版 PDF、带表格的 Office 文件,直接跑命令:

1
mineru -p ./example.pdf -o ./output

如果机器资源有限,可以用 CPU 后端:

1
mineru -p ./example.pdf -o ./output -b pipeline

路线三:接进自己的工作流

当你确认效果符合预期后,再考虑把它接到:

  • RAG 数据入库流程
  • 企业知识库预处理
  • Agent 文档理解流程
  • 批量数据清洗管道
  • API 服务链路

MinerU 的好处在于,试用和集成都不算遥远。它不是那种只适合“围观”的项目,而是很容易走到“真正接入生产”的下一步。

它仍然年轻,但这恰恰也是它的魅力

README 里有一句很诚恳的话:和知名商业产品相比,MinerU 仍然年轻。如果你遇到问题,或者结果不符合预期,欢迎提交 issue。

这种表述反而让人更容易信任。

因为一个真正认真做产品的开源项目,不会装作自己已经完美无缺。它更像一个还在快速成长、但已经非常能打的年轻工程师:有冲劲,有进化速度,也愿意正视问题。

而从它的更新频率、支持格式、后端设计、生态对接能力来看,这个“年轻人”显然已经不是初出茅庐的状态了。它已经有了成熟产品的骨架,也保留着开源项目最迷人的活力。

写在最后

如果你今天还在为文档解析发愁,尤其是在大模型、RAG、Agent 这些场景里反复被 PDF、扫描件、表格、公式和复杂排版绊住脚,那么 MinerU 很值得认真看一眼。

它像一位专门为 AI 时代训练出来的文档采矿师,懂文档、懂结构、懂 OCR、懂公式、懂表格,也懂如何把这些内容交到大模型手里。

它不满足于把文档“拆开”,它更想把文档“整理好”。

而在智能系统越来越依赖高质量输入的今天,这种能力,本身就是一种非常稀缺的生产力。

如果说大模型是思考者,那么 MinerU 就像那位在幕后默默整理资料、梳理线索、铺平道路的搭档。它不总是站在最显眼的位置,却常常决定后面的系统究竟能走多远。

当复杂文档还在制造混乱时,MinerU 已经卷起袖子走了进来。

它看着那堆 PDF、DOCX、PPTX、XLSX 和图片,没有皱眉,只是平静地说了一句:

都别急,一个个来,我会把你们变成大模型看得懂的样子。