← 返回公开榜单
Th

wzdavid/ThinkParse

Enterprise-grade document parsing service with asynchronous queue processing based on MinerU, Celery and Docker.

本周新增
7 星
近 3 周倍数
—
距上次推送
34 天
距上次发布
—
许可证
MIT

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

指向或点击一根柱子,看当天的九项指标。

9/209/239/269/2910/110/410/710/10

2026 年 9 月 21 日 新增 1 个星标; 2026 年 9 月 22 日 新增 1 个星标; 2026 年 9 月 23 日 新增 0 个星标; 2026 年 9 月 24 日 新增 2 个星标; 2026 年 9 月 25 日 新增 0 个星标; 2026 年 9 月 26 日 新增 0 个星标; 2026 年 9 月 27 日 新增 0 个星标; 2026 年 9 月 28 日 新增 1 个星标; 2026 年 9 月 29 日 新增 0 个星标; 2026 年 9 月 30 日 新增 1 个星标; 2026 年 10 月 1 日 新增 2 个星标; 2026 年 10 月 2 日 新增 0 个星标; 2026 年 10 月 3 日 新增 0 个星标; 2026 年 10 月 4 日 新增 0 个星标; 2026 年 10 月 5 日 新增 0 个星标; 2026 年 10 月 6 日 新增 0 个星标; 2026 年 10 月 7 日 新增 0 个星标; 2026 年 10 月 8 日 新增 4 个星标; 2026 年 10 月 9 日 新增 1 个星标; 2026 年 10 月 10 日 新增 2 个星标

窗口内最高的一天是 2026 年 10 月 8 日,新增 4 个星标。

证据时间轴

这个项目还没有记录到异动、发布或许可证变化。

README
The document stored for this repository, with its Chinese translation when one has been produced

ThinkParse

Enterprise-grade document parsing — from one machine to distributed multi-GPU clusters.

Open-source system that turns PDFs, scans, and more into clean Markdown and structured results through one production-ready API. Built for RAG, knowledge bases, research pipelines, and long-running batch jobs — not just a demo script around a parsing model.

CI Release License: MIT Python 3.10+ Docker Ready

English · 简体中文

Quick start · Why ThinkParse · Docs · Contributing

Why ThinkParse?

High-quality engines such as MinerU solve how to parse a document. Production systems still need to answer:

  • How do we parse tens of thousands to millions of files without client timeouts?
  • How do we use every GPU, not just cuda:0?
  • How do we keep jobs recoverable when a worker or engine restarts?
  • How do we cancel, retry, observe, and clean up at scale?

ThinkParse is the enterprise document parsing service for that gap: a stable HTTP API, durable tasks, shared object storage, multi-GPU parallelism, and distributed deployment.

CapabilityWhat you get
Reliable batch parsingSubmit, poll, cancel; jobs survive restarts; higher priority (0–9) runs first without preempting work already on a GPU
Multi-GPU parallelismMinerU runs one process per visible GPU; ThinkParse admits work via slots / in-flight bytes and can spread jobs across multiple engine URLs
Distributed deploymentAPI / reconciler on CPU hosts; GPU nodes only run engines; shared Postgres + external S3
Production APIAsync /api/v1 for existing clients; resource-oriented /api/v2 for new integrations
Operational visibilityLive / ready / deep health, tiers, stats, batches, timing (queue / parse / project)
Quality outputsMarkdown, tables, formulas, images, content_list, intermediate JSON

Parsing quality comes from MinerU 4.0 (optional Docling for selected non-PDF formats). ThinkParse owns the service layer: scheduling, durability, capacity, and the stable API your apps call.

Occasional one-off PDFs? Run MinerU alone.
RAG, knowledge bases, literature pipelines, or continuous batch conversion? Use ThinkParse.

How it works

Your apps
   │  POST /api/v1/tasks/submit   or   /api/v2/uploads + /api/v2/jobs
   ▼
┌──────────────────────────────────────────────┐
│ ThinkParse  (API + task orchestration)       │
│  Gateway · PostgreSQL · Object store · Loop  │
└──────────────────┬───────────────────────────┘
                   │ HTTP
        ┌──────────┴──────────┐
        ▼                     ▼
  MinerU 4.0 (multi-GPU)   Docling Serve (optional)

The API stays light. Heavy parsing runs on engine nodes. Scale GPUs or hosts without changing how clients submit work.

Quick start

Requirements: Docker. For GPU mode: NVIDIA driver + NVIDIA Container Toolkit.

git clone https://github.com/wzdavid/ThinkParse.git
cd ThinkParse
cp .env.example .env
# Pick one: COMPOSE_PROFILES=gpu | cpu | (empty → external MinerU)
# Change POSTGRES_PASSWORD (letters and digits only)

docker compose --env-file .env -f docker/docker-compose.yml up -d --build
curl -fsS http://127.0.0.1:8000/api/v1/health/live
curl -sS http://127.0.0.1:8000/api/v1/health/ready
curl -sS http://127.0.0.1:8000/api/v2/tiers

Submit a document (async — recommended for batch and production):

curl -sS \
  -F "file=@document.pdf" \
  -F "backend=pipeline" \
  http://127.0.0.1:8000/api/v1/tasks/submit

Poll GET /api/v1/tasks/{task_id} until completed, failed, or cancelled.

Full walkthrough: Quick start · Deployment.

Deployment options

ModeWhen to useNotes
CPULocal trial, no GPUCOMPOSE_PROFILES=cpu — flash / basic
GPU (single or multi)Production throughputOne GPU: COMPOSE_PROFILES=gpu. Two GPUs: gpu,gpu1 plus MINERU_BASE_URLS / THINKPARSE_SLOTS. Tune MINERU_GPU_CONCURRENCY
External enginesYou already run MinerUUnset profile; set MINERU_BASE_URL(S)
DistributedSeparate API and GPU fleetsShared Postgres + external S3; multiple MinerU URLs; capacity via slots and in-flight bytes

Do not enable cpu and gpu together. Gateway listens on 8000. See Deployment and Operations.

API at a glance

APIUse
/api/v1/tasks/*Production async workflow (submit / poll / cancel)
/file_parseSync convenience only — prefer async in batch
/api/v2/*Uploads, jobs, files, tiers, stats, batches

Engine-native routes stay internal. See the API reference.

Who is it for?

  • RAG / knowledge-base teams — uniform Markdown + structure before chunking and embedding
  • Research & data platforms — batch papers, reports, contracts without holding HTTP open
  • AI product teams — document parsing as a microservice, without shipping engine deps into every app
  • Infra / mid-platform — multi-GPU and multi-node farms with shared storage and clear health signals

Documentation

DocDescription
OverviewPositioning, goals, non-goals
ArchitectureSystem design, engines, data model
Quick startFirst successful parse
DeploymentModes, acceptance, troubleshooting
API/api/v1 and /api/v2
OperationsStats, capacity, multi-GPU tuning

Development

pip install -r control/requirements-dev.txt
PYTHONPATH=. python -m unittest discover -s tests -p 'test_control_*.py'
ruff check control tests

Acknowledgments

ThinkParse builds on MinerU, optional Docling, FastAPI, PostgreSQL, and S3-compatible storage.

License

MIT. Third-party engines remain under their own licenses.

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。