做 RAG、知识库、智能问答,第一步往往是把 PDF、Word、扫描件变成结构化 Markdown。MinerU 的解析质量有目共睹,但直接在生产环境跑 MinerU,问题不少:大文件一解析就 OOM,几百页 PDF 直接卡死;同步 HTTP 请求超时,批量任务没法排队;API 和 Worker 绑在一起,扩容、升级、故障恢复都很痛苦;本地磁盘存结果,多机部署时文件对不上。
ThinkParse 要补的就是这一层:在 MinerU 之上,提供稳定、可扩展、可运维的 HTTP 解析服务。

一、ThinkParse 是什么?
ThinkParse 是 Think 系列产品中的开源文档解析层,与 ThinkWiki(个人知识库)、ThinkDoc(企业知识库)、ThinkExtract(数据抽取平台)并列。定位很清晰:可插拔后端 + 稳定 HTTP API。当前内置 MinerU 3.4 作为解析引擎,后续计划支持 Docling 等;上层业务只对接 ThinkParse,不跟具体引擎耦合。
核心架构是 API / Worker 完全解耦:
客户端 → FastAPI(轻量 API)→ Redis 队列 → Celery Worker(MinerU / MarkItDown)→ 本地或 S3 存储- API 服务接收文件、提交任务、查询状态
- Worker 服务专注文档解析,可独立水平扩展
- Redis消息队列 + 结果缓存
- 存储抽象本地文件系统或 S3/MinIO,支持分布式部署
MIT 开源,Docker 一键部署,Python 3.10+。

二、新版本升级了什么?
ThinkParse 1.1.0(2026-06-24)是项目从 MinerU-API 正式更名为 ThinkParse 后的首个版本发布,重点在品牌统一、引擎升级和生产稳定性。
1. 归入 Think 系列,品牌统一
项目从 MinerU-API 更名为 ThinkParse,与 ThinkWiki、ThinkDoc、ThinkExtract 形成同一产品族。Docker 服务名(mineru-api、mineru-worker 等)保持不变,现有部署配置可直接沿用。
2. 解析引擎升级到 MinerU 3.4.0
解析内核从 MinerU 2.x 升级到 3.4.0,带来新一代 OCR 模型(如 PP-OCRv6)和更优的版面分析。公式识别、表格识别、多语言(中/英/日/韩等)继续开箱即用。升级后需重建 Worker 镜像(cd docker && sh build.sh),模型会在构建过程中自动下载。
3. 生产环境兼容性修复
修复 MinerU 3.4.0 在子进程场景下重载 worker/tasks.py 时触发的 MINERU_DEVICE_MODE KeyError,避免 Worker 在特定部署模式下异常退出。
三、生产级部署会用到哪些能力
以下能力随 ThinkParse 1.0.0 起即已提供,1.1.0 在 MinerU 3.4 引擎之上继续可用。
1. 大 PDF 自动分页解析
超过阈值(默认 100 页)的大 PDF,Worker 会自动分块解析再合并结果,降低内存溢出风险。阈值和分块大小可配置,也支持 API 参数显式开关:
curl -X POST "http://localhost:8000/api/v1/tasks/submit"
-F "file=@large_document.pdf"
-F "backend=pipeline"
-F "lang=ch"
-F "enable_pagination=true"几百页的合同、年报、论文,不必再赌一把能不能跑完了。
2. 双 API,兼容两种集成方式
同步 API(/file_parse)兼容 MinerU 官方格式,提交即等结果,适合脚本、小文件、快速验证:
curl -X POST "http://localhost:8000/file_parse"
-F "files=@document.pdf"
-F "backend=pipeline"
-F "lang_list=ch"
-F "return_md=true"异步队列 API(/api/v1/tasks/*)提交任务拿 task_id,轮询或回调获取结果,适合生产批量、长任务、高并发:
# 提交
curl -X POST "http://localhost:8000/api/v1/tasks/submit"
-F "file=@document.pdf" -F "lang=ch"
# 查询
curl "http://localhost:8000/api/v1/tasks/{task_id}"两种接口并存,现有 MinerU 客户端可无缝迁移。
3. 运维与扩展
- 优先级队列紧急任务优先调度
- 任务重试与故障恢复Worker 挂了,任务不丢
- 队列监控
/api/v1/queue/stats实时看积压 - 自动清理服务过期输出定期回收,磁盘不会越堆越满
- S3 兼容存储MinIO / AWS S3,API 和 Worker 可分机部署
- CPU / GPU Worker开发用 CPU,生产上 GPU,
COMPOSE_PROFILES一行切换
4. 多格式全覆盖
| 类型 | 引擎 | 格式 |
|---|---|---|
| PDF、图片 | MinerU | PDF, PNG, JPG 等 |
| Office、网页、纯文本 | MarkItDown | Word, Excel, PPT, HTML, TXT 等 |
一套 API,PDF 扫描件和 Office 文档都能走。
四、谁适合用 ThinkParse?
- RAG / 知识库开发者ThinkDoc、ThinkExtract 的上游解析层,文档入库前统一走 ThinkParse
- AI 应用团队需要稳定的文档→Markdown 微服务,不想自己维护 MinerU 进程
- 数据处理 / 中台团队批量解析合同、研报、标书,异步队列 + S3 存储正好匹配
- 个人开发者 / 研究者Docker 四步启动,本地调试 MinerU 能力,零配置上手
五、只需四步启动,5 分钟跑通
前置: Docker + Docker Compose(GPU 环境需 NVIDIA 驱动)
# 1. 复制配置
cp .env.example .env
cd docker && cp .env.example .env
# 2. 选择 Worker 类型(docker/.env)
COMPOSE_PROFILES=redis,mineru-cpu # 开发推荐 CPU
# COMPOSE_PROFILES=redis,mineru-gpu # 生产推荐 GPU
# 3. 构建镜像
cd docker && sh build.sh
# 4. 启动
docker compose up -d
# 验证
curl http://localhost:8000/api/v1/health浏览器打开 Swagger 交互文档,地址 http://localhost:8000/docs ,可直接试 API。
六、和 Think 生态怎么配合?
ThinkParse 是 Think 系列的解析基础设施:
原始文档 → ThinkParse(结构化 Markdown)→ ThinkDoc(知识库)/ ThinkExtract(数据抽取)→ Agent 对话 / 检索文档解析这一环开源、标准化之后,上层知识库产品可以专注入库、图谱、Agent 交互,而不是重复造 MinerU 部署的轮子。
七、开源共建
ThinkParse 基于 MinerU,并参考了 mineru-tianshu 构建,站在优秀开源项目之上,MIT 协议发布。
- 项目:https://github.com/wzda vid/ThinkParse
- 文档:中英文 README + 部署、配置、API 示例、故障排除全套文档
如果你在做文档智能、知识库或 RAG,欢迎 Star、Fork,或在 Issue 里提需求。Docling 等新后端的支持已在路线图中。
