Unstructured 使用介绍:功能、价格与上手指南
Unstructured 是专为 LLM 应用设计的非结构化数据 ETL 平台,支持 PDF、HTML、Word、图片等 25+ 格式,输出干净的结构化数据。本文介绍其核心功能、开源版与商业版价格差异,并提供 Python 安装、API 调用与 RAG 集成上手指南。
在构建 RAG(检索增强生成)或 LLM 应用时,最大的痛点往往不是模型本身,而是如何把 PDF、Word、HTML、图片等非结构化数据变成干净、可切分的文本。Unstructured 正是为解决这一问题而生的开源 ETL 工具。本文将从功能、价格到上手实操,带你全面了解 Unstructured。
Unstructured 是什么?
Unstructured 是一个专为 LLM 数据预处理设计的开源平台,核心目标是把 25+ 种非结构化文档格式转化为结构化、可被向量数据库和语言模型直接消费的数据。它提供两种使用方式:
- 开源 Python 库:本地运行,适合开发者自建管道
- 商业 API / 平台:托管服务,适合企业快速集成
核心功能
1. 多格式文档解析
Unstructured 支持 PDF、HTML、Word、PPT、Excel、Markdown、EPUB、图片、邮件等格式。对 PDF 尤其强大,能处理扫描件、多栏排版、表格和嵌入图片。
2. 智能元素提取
它不只是提取纯文本,而是将文档拆解为语义元素:
| 元素类型 | 说明 |
|---|---|
| Title | 标题 |
| NarrativeText | 正文段落 |
| Table | 表格 |
| ListItem | 列表项 |
| Image | 图片(可配合 OCR) |
| PageBreak | 分页符 |
这种元素级切分让后续 chunking 更精准,显著提升 RAG 召回质量。
3. 分块与清洗
内置 chunk_by_title 等分块策略,按标题层级自动切分,避免固定长度切分导致的语义断裂。同时支持去除页眉页脚、乱码、多余空白。
4. 连接器生态
Unstructured 提供 30+ 源连接器(S3、Google Drive、SharePoint、Notion、Confluence 等),可定时增量同步,构建自动化数据管道。
价格方案
| 版本 | 价格 | 适用场景 |
|---|---|---|
| 开源库 | 免费 | 本地开发、小规模处理 |
| API 免费层 | 免费(限速) | 测试与原型验证 |
| API 按量付费 | 约 $0.01/页起 | 生产级小规模 |
| 企业版 | 定制报价 | 高并发、私有部署、SLA |
注意:开源库功能完整,但高精度 OCR、复杂表格识别等高级能力在商业 API 中表现更好。若预算有限且文档规范,开源版足够。
上手指南:3 步跑通
步骤 1:安装
pip install unstructured[all-docs]
若只需 PDF 支持:
pip install unstructured[pdf]
系统需安装 poppler-utils、tesseract-ocr 等依赖(Ubuntu 下 apt-get install poppler-utils tesseract-ocr)。
步骤 2:本地解析文档
from unstructured.partition.auto import partition
elements = partition(filename="example.pdf")
for el in elements:
print(el.category, "|", el.text[:80])
步骤 3:分块并接入 RAG
from unstructured.chunking.title import chunk_by_title
chunks = chunk_by_title(elements, max_characters=1000)
texts = [str(c) for c in chunks]
# 接下来可送入 embedding 模型与向量数据库
使用 API(可选)
from unstructured.partition.api import partition_via_api
elements = partition_via_api(
filename="example.pdf",
api_key="YOUR_API_KEY"
)
常见问题
Q:Unstructured 与 LangChain 的 UnstructuredLoader 有什么区别? LangChain 的 Loader 底层就是调用 Unstructured,封装了 Document 格式,适合直接接入 LangChain 管道。
Q:处理扫描版 PDF 效果差怎么办? 启用 strategy="hi_res" 并配置 OCR,或使用商业 API 的增强 OCR 能力。
Q:能处理中文文档吗? 可以。安装中文 Tesseract 语言包(tesseract-ocr-chi-sim)即可提升中文 OCR 准确率。
结论
Unstructured 是目前最成熟的 LLM 数据预处理工具之一。开源版适合开发者快速验证,商业 API 适合企业规模化生产。建议先用开源库处理规范文档,遇到复杂 PDF 或高并发需求时再升级商业版。掌握本文的安装、解析与分块三步,你就能把杂乱文档变成 RAG 可用的高质量数据。