文档 AI 流水线
Surya / Zerox / MinerU / Docling / Unstructured / DocETL / MarkItDown — 把任何 PDF / 扫描 / Office 文件变成 LLM 干净输入。
这个 pack 装了什么
| # | 解析器 | 强项 | 输出 |
|---|---|---|---|
| 1 | Surya | 多语言 OCR + 版面,90+ 语言 | 文本 + 边界框 |
| 2 | Zerox | 视觉 LLM 逐页解析 | markdown |
| 3 | MinerU | 带公式表格的科学 PDF | markdown + LaTeX |
| 4 | Docling | IBM 的 PDF/DOCX/HTML/PPTX 全能解析 | DoclingDocument JSON |
| 5 | Unstructured | 企业级预处理 + 切块 | 可直接 embedding 的元素列表 |
| 6 | DocETL | LLM 驱动的文档 ETL,带校验 | 类型化记录 |
| 7 | MarkItDown | 微软出的 Office 转 Markdown | markdown |
七个解析器覆盖了「这个文件本来给人看,现在 LLM 要读」的所有形态。有专精(Surya 专做 OCR、MinerU 专做数学论文),也有通用(Docling、Unstructured、MarkItDown)。按文件类型组合和精度预算挑。
为什么要装
LLM 读裸 PDF 文本意外地不行。在你眼里像散文的字节,实际上是没有阅读顺序的散落字形 —— pdfplumber 和 PyMuPDF 吐出来的是乱序的,模型读着发懵。表格变成断行。页眉页脚漏进正文。多栏版面会从左栏从上到下读到底,再读右栏,对 transformer 来说毫无意义。
这个 pack 解决了这些。Surya 和 Zerox 用视觉模型像人一样看页面,重建逻辑阅读顺序。Docling 和 Unstructured 跑版面感知流水线,给每个元素打标签(标题、段落、表格、说明),让下游切块尊重结构。MinerU 是唯一能稳定从科学论文提公式和矩阵的开源工具。
Office 文件(PPT、Word、Excel)选 MarkItDown。微软出它是因为自己内部 Copilot 检索需要从 Office 拿干净 Markdown,市面上的转换器太烂。
一条命令装齐
# 装整个 pack
tokrepo install pack/document-ai-pipeline
# 或者按文件类型挑
tokrepo install docling
tokrepo install surya
tokrepo install markitdown
每个资产的 TokRepo 页面都列了支持的文件类型、GPU 要求(Surya 和 Zerox 要 GPU;Docling 和 MarkItDown 跑 CPU),以及下游搭配良好的切块策略。
常见坑
- OCR vs PDF 文本层:PDF 带文本层就不要做 OCR。先跑 Docling,如果文本层完整,跳过 Surya。OCR 比文本抽取慢 10-100 倍
- 表格悄悄破了:多数解析器能提表格但行扁平化常错。永远抽 10 个随机表格肉眼看一遍再相信流水线
- 多栏阅读顺序:法律文件和两栏学术论文坑朴素解析器。Docling 和 Surya 能处理;pdfplumber 不行
- 图片说明丢失:插图常是论文最密集的信息点。确保解析器把说明文字绑在图旁,不要飘到别处
- Zerox 的 token 成本:Zerox 每页调一次视觉 LLM。200 页 PDF 可能要花 $1-2 API 费。要狠狠缓存,优先 Docling 再 Zerox 兜底,不要全走 Zerox
跟其他 pack 的关系
这个 pack 是检索的入库层。它产出干净文本和结构化元素;RAG 流水线 pack 负责切块、embedding、提供服务。要从网页而非文件入库,切到 AI 网页抓取。语音视频内容要先过语音识别(不在本 pack 范围)。
常见的生产栈:MarkItDown 处理 Office → Docling 处理 PDF → Unstructured 切块 → 向量库 → RAG 流水线。包间边界清楚,单层可换不动其他。
7 个资产打包就绪
常见问题
这套免费吗?
七个解析器全是 MIT / Apache 2.0 / BSD 开源协议。自托管免费。隐藏成本是视觉解析器(Surya、Zerox)的 GPU 时间,以及 Zerox 或 DocETL 用托管模型时的 LLM API 费。CPU-only 选项(Docling、MarkItDown、Unstructured)任何规模基本都免费。
Docling 还是 Unstructured 该选哪个?
想要一个解析器搞定 PDF/DOCX/HTML/PPTX,输出统一格式且有 IBM 质量底,选 Docling。要深企业集成(S3、SharePoint、Azure 连接器)、可插拔切块策略、能接受配置面更复杂,选 Unstructured。很多团队两个都跑:Docling 做解析,Unstructured 做切块。
能搭 Cursor / Codex CLI 用吗?
可以 —— Docling、Unstructured、MarkItDown 都有 MCP server 或暴露成 CLI 工具,任何 AI agent 都能调。把 MCP 定义丢进 Cursor 设置,丢一个 PDF 进去 LLM 就能现转 markdown。Surya 和 Zerox 较重(GPU 常驻),通常作为独立微服务跑。
跟 AI 网页抓取 pack 有啥区别?
网页抓取从 URL 开始。文档 AI 从文件开始。两者输出都是 LLM 可读文本,但输入形态根本不同。多数生产 RAG 语料两个都要 —— 你的知识库有内部 PDF 和 公开文档站。这种情况两个 pack 都装。
运维上最大的坑?
吞吐规划。视觉解析(Surya、Zerox、MinerU 跑硬页)单 GPU 大约 1-5 页/秒。10 万页要入库要好几小时到好几天。先跑小基准再决定 —— 很多团队太晚才发现回填要一个周末而非一个下午。