给 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 和其它文档工具的对比

unstructureddoclingmarkitdownjina reader
Stars14,93661,641152,76411,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 能可靠抽表格吗? 部分能。表格抽取能用,但出过破坏性变更、也会把一些内容误判为表格,所以喂下游逻辑的表格要核对,别盲信。