给 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 引擎,看 TesseractPaddleOCR。想看什么在涨,见 每日榜每周报告

常见问题

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