给 RAG 的文档 ETL
unstructured 是检索管线的 ingest 层:它吃一个真实组织手里那些杂乱文件类型,含 PDF、DOCX、PPTX、HTML、邮件,把每个变成一份统一的元素列表,如 Title、NarrativeText、Table、ListItem。这个元素模型就是重点。你拿到的是带元数据、有类型的结构化片段,可以切块、做向量,喂进 RAG 系统;扁平字符串里挖不出这些。截至 2026-06 有 14,936 星,是团队把文档接进 LangChain 或 LlamaIndex 的常见首选。
它做什么
主入口是一个 partition 函数,它检测文件类型并拆成元素。从那以后,你按标题或 token 数切块,把结果交给向量化步骤。它直接接入流行的 RAG 框架,另一个 ingest 包还加了连到 S3、MongoDB、Snowflake 等源的连接器,所以它能当一整条管线的前端,处理范围远超单个文件。
安装,以及依赖的现实
期望在这儿撞上现实。基础安装很小,但真正的文档支持会拉进重型系统依赖:
pip install "unstructured[all-docs]"
all-docs extra 期望系统包如 poppler、tesseract、libmagic,可能还有 libreoffice,这是安装最常见的痛点,尤其在 Windows 上。很多团队最后在 Docker 里跑它,就为把系统依赖弄对。给环境留足时间,别只盯着那行 pip。
开源库与平台的区别
动手前最关键的判断:unstructured 既是开源库又是商业平台,两者不是同一个产品。Apache-2.0 的库给你分区、元素类型和基础切块。付费的 Unstructured Platform 和 API 加上托管处理、更丰富的切块与富化、图像和表格处理,以及低代码管线 UI。一部分能力和最顺的体验在商业那侧。这是合理的商业模式,但要读清边界,免得你以为在库里的功能,其实是平台功能。
适合与不适合
在搭 RAG ingest 管线、看重它的连接器和框架集成、且有类型元素模型贴合你怎么切块和检索时,选它。要规模化的托管管线,平台是个真实选项。
它比你做一次性本地转换想要的要重,依赖搭建是已知障碍,表格抽取脆到喂下游逻辑的表格你该核对。大文件还可能吃掉惊人的内存。如果你想要本地的版面感知解析、又不沾平台这层,docling 值得对比。
unstructured 和其它文档工具的对比
| unstructured | docling | markitdown | jina reader | |
|---|---|---|---|---|
| Stars | 14,936 | 61,641 | 152,764 | 11,235 |
| 模型 | 给 RAG 的类型元素 | 版面感知解析 | 轻量转换 | URL 转 Markdown |
| 依赖 | 重(poppler、tesseract) | 中(模型) | 轻 | 无(托管) |
| 开源/付费 | 库加付费平台 | 全开源(MIT) | 全开源(MIT) | 托管加自托管 |
| 适合 | 带连接器的 RAG ingest | 版面保真、本地 | 快速 office 转 Markdown | 网页 |
数字为截至 2026 年 6 月的 GitHub 数据。docling 全开源、专注版面保真且本地执行。markitdown 是轻量转换器。jina reader 处理网页 URL。unstructured 的优势是 RAG 原生的元素模型加源连接器,代价是依赖和「库 vs 平台」的拆分。
star 曲线
star 曲线随 RAG 那波上行,那时文档 ingest 成了普遍需求,它也跟着它所集成的 LangChain 式栈一起涨。增长是稳步的。团队采用它多半出于需要,这符合一个基础设施库被有意选用的样子。
issue 区给你的预警
反复的痛点是环境和结构性的。缺系统依赖导致的安装失败是头号抱怨,这也是 Docker 成为常见绕法的原因。hi_res 策略慢、首次用会下一个版面模型,fast 用准确率换速度,而怎么在两者间选,提示得不清楚。表格抽取出过破坏性变更、也会误判一些内容,所以别盲信表格。大或复杂的文件,包括大 HTML 和表格文件,可能把内存撑爆。这些是通用文档解析的现实,在这儿又被依赖之重放大了。
相关仓库
要全开源、版面感知的本地解析,看 docling。要轻量转换,看 markitdown。要网页,看 jina reader。要文档解析背后的 OCR 引擎,看 Tesseract 和 PaddleOCR。想看什么在涨,见 每日榜 和 每周报告。
常见问题
unstructured 还是 docling,该用哪个? unstructured 给一个 RAG 原生的元素模型,带源连接器,开源库加付费平台。docling 全开源,专注版面感知的本地解析。要连接器丰富的 ingest 管线用 unstructured,要版面保真和全开源依赖用 docling。
unstructured 为什么难装? 真正的文档支持需要 poppler、tesseract、libmagic 等系统包,而 pip extra 不替你装。缺这些是失败的头号原因,很多团队在 Docker 里跑它来把环境弄对。
unstructured 免费还是要付费? 库是 Apache-2.0 免费。还有付费的 Unstructured Platform 和 API,加上托管处理、更丰富的富化和管线 UI。一部分能力在商业那侧,所以查清某个功能在哪一边。
hi_res 和 fast 策略有什么区别? hi_res 用版面模型换更高准确率,但更慢、首次用会下模型。fast 更快、更不准。按你的文档看重准确率还是吞吐来选。
unstructured 能可靠抽表格吗? 部分能。表格抽取能用,但出过破坏性变更、也会把一些内容误判为表格,所以喂下游逻辑的表格要核对,别盲信。