这个项目能做什么

Unstructured 是一个面向非结构化数据的开源预处理库。它摄取并分区图像和文本文档——PDF、HTML、Word 文档、电子邮件以及许多其他格式——并将其转换为适合语言模型工作流的结构化输出。 核心能力 - `partition` 函数可自动检测文件类型,并路由到特定格式的分区器(例如 `partition_pdf`、`partition_text`)。 - 输出为文档元素列表,可序列化为字符串或结构化格式。 - 模块化函数和连接器构成数据摄取与预处理系统,旨在跨平台适配。 - README 还描述了一个 MCP 服务器产品(Unstructured Transform),可向代理暴露文档处理能力,在代理会话中处理 60 多种文件类型,包括解析、增强、分块和嵌入。 安装与使用 - 通过 PyPI 安装:`pip install unstructured` 用于纯文本、HTML、XML、JSON 和电子邮件;`pip install "unstructured[all-docs]"` 用于所有文档类型;或使用针对性扩展,如 `unstructured[docx,pptx]`。 - 可选系统依赖包括 libmagic-dev(文件类型检测)、poppler-utils(图像/PDF)、tesseract-ocr(OCR,tesseract-lang 用于额外语言)以及 libreoffice(MS Office 文档);pandoc 通过 pypandoc-binary 捆绑提供。 - Docker 镜像已针对 x86_64 和 Apple silicon 发布;镜像按提交哈希、版本和 `latest` 打标签,也可使用 `make docker-build` 在本地构建。 - 本地开发使用 `uv` 进行依赖管理;`make install` 运行 `uv sync --locked --all-extras --all-groups`。可选的 pre-commit 钩子以及 `make check`/`make tidy` 支持格式化和代码检查。 文档与社区 该项目指向 docs.unstructured.io,提供快速入门、核心功能、连接器、概念和集成。它提供了安全策略、错误报告模板(使用 `scripts/collect_env.py` 收集环境信息),并链接到公司网站、完整 API 文档以及独立批处理仓库(unstructured-ingest)。 遥测 README 说明默认会发送轻量级分析数据:导入时发送一次库加载 ping,并在每次顶层公共 partition 调用时尽力在本地尝试一次。运行时事件据称包含包版本、规范化平台/Python/架构值、固定枚举的 partition 特征,以及作为 URL 查询参数的最终元素聚合计数,没有请求体,也不包含文档内容、文件名、路径、URL、MIME 值、异常详情、凭据或持久标识符。传递被描述为非阻塞,无重定向、重试、响应体下载或队列,也不查询代理或 netrc 设置。可在导入或分区前将 `DO_NOT_TRACK` 或 `SCARF_NO_ANALYTICS` 设置为任意非空值来选择退出。