unstructured

把 PDF/Word 等复杂文档,一键变成 LLM 能用的干净数据

Unstructured 是一个开源的 ETL 工具,专注于将复杂文档(如 PDF、Word、PPT、图片等)转换为干净、结构化的数据,以便直接用于大语言模型(LLM)的检索增强生成(RAG)或微调流程。它解决了非结构化数据难以被机器理解和处理的问题,提供了文档解析、分区、清洗、去重、切块和嵌入等核心能力。其核心优势在于支持多种文件格式,并能智能识别文档中的标题、段落、表格、列表等元素,输出为 JSON 或文本等结构化格式。项目提供 Python 库和命令行工具,可灵活集成到现有数据管道中,帮助开发者快速构建高质量的知识库或数据预处理流程。

开源 freemium 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 15469
维护状态 活跃
是否开源
定价模式 freemium

项目数据

分类开源模型
开发团队Unstructured-IO
所属国家
定价模式freemium
价格说明开源版免费,企业级平台提供增值功能,具体定价需咨询官网。
访问状态
是否开源
开源协议Apache-2.0
主要语言HTML
技术栈/模型data-pipelines,deep-learning,document-image-analysis,document-image-processing,document-parser,document-parsing,docx,donut,information-retrieval,langchain,llm,machine-learning,ml,natural-language-processing,nlp,ocr,pdf,pdf-to-json,pdf-to-text,preprocessing
GitHub 星标★ 15469
30天Star增速
HF 下载量
上线时间2022-09-26 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • Python 环境(项目提供 PyPI 包 unstructured)
  • pip 可用,用于安装 PyPI 包
  • 按需的系统依赖:libmagic-dev、poppler-utils、tesseract-ocr、libreoffice
  • 如使用容器方式,需先安装 Docker
  • 本地开发需安装 uv 依赖管理工具

安装与启动步骤

  1. 1安装 Python SDK

    安装支持全部文档类型的完整版;若只处理文本、HTML、XML、JSON、邮件,装基础版即可。

    pip install "unstructured[all-docs]"
  2. 2安装系统依赖

    按需安装,不同文档类型需要的依赖不同,未用到可不装。

    apt-get install -y libmagic-dev poppler-utils tesseract-ocr libreoffice
  3. 3验证解析效果

    用 partition 通用入口解析示例邮件文件并打印元素文本,能输出内容即安装成功。

    python3 - <<'PY'
    from unstructured.partition.auto import partition
    
    elements = partition(filename="example-docs/eml/fake-email.eml")
    print("
    
    ".join([str(el) for el in elements]))
    PY
  4. 4拉取 Docker 镜像

    镜像支持 x86_64 与 Apple silicon,docker pull 会自动选择对应架构。

    docker pull downloads.unstructured.io/unstructured-io/unstructured:latest
  5. 5进入容器操作

    该命令要求已有一个名为 unstructured 的运行中容器,进入后可直接用交互模式解析文档。

    docker exec -it unstructured bash

如何确认成功

运行 partition(filename="example-docs/eml/fake-email.eml") 并打印结果,能正常输出解析出的元素文本即表示安装成功。

常见问题

Q:只处理纯文本、HTML、XML、JSON 和邮件,需要装全量依赖吗?

A:不需要,直接执行 pip install unstructured 即可,这些类型无需额外依赖。

Q:只需要解析 Word 或 PPT 怎么办?

A:按类型安装对应的 extras,例如 pip install "unstructured[docx,pptx]",避免安装全部依赖。

Q:解析 PDF 或图片时报缺少依赖怎么办?

A:补充安装 poppler-utils 和 tesseract-ocr;需要多语言 OCR 时再安装 tesseract-lang。

Q:docker pull 的镜像架构不对怎么办?

A:镜像为多平台构建,一般会自动匹配;必要时用 --platform 指定,例如 --platform linux/amd64。

Q:我在 Windows 上安装失败怎么办?

A:README 提示 Windows 可参考官方文档中的 conda 安装方式(unstructured-io.github.io/unstructured/installing.html)。

注意事项

  • Docker 镜像基于 wolfi-base,该基础镜像会定期更新,本地构建 docker-build 可能因上游变更而失败。
  • 若只解析某一种数据,可在 Dockerfile 中注释掉其他数据类型的包/依赖以加快镜像构建。
  • pandoc 已通过 pypandoc-binary Python 包自动捆绑,无需额外系统安装。
  • 本地开发安装需先安装 uv 进行依赖管理,具体步骤见 README 后续内容与官方安装文档。

核心亮点

  • 支持 PDF、Word、PPT、图片等 20+ 种格式,覆盖常见办公文档
  • 自动识别文档结构(标题、表格、列表),输出带语义的 JSON
  • 提供分区、清洗、切块、嵌入全流程 API,开箱即用

不足之处

  • 部分高级功能(如企业级分区)依赖商业版,开源版功能有限
  • 处理超大 PDF 或扫描件时速度较慢,需额外优化

适用场景

  • 构建 RAG 系统前的文档预处理,提升检索准确率
  • 批量清洗历史文档,用于 LLM 微调数据集构建
  • 企业内部知识库自动化入库,支持多格式文档统一管理

替代项目

langchain、llamaindex、textract

项目介绍

unstructured 是基础设施领域的开源项目,由 Unstructured-IO 开发,2022 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(15,469)位列前 4%,在基础设施分类的 1,130 个项目里位列前 5%。

近 41 天,它的 GitHub 星标从 15,305 增加到 15,469,净增 164。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。开源版免费,企业级平台提供增值功能,具体定价需咨询官网。

它主要面向的使用场景是:构建RAG系统前的文档预处理,提升检索准确率。同类可对比的替代方案包括 langchain、llamaindex、textract。

上一篇:MNN

下一篇:nano-vllm

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09