Об этом проекте
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 указано, что по умолчанию отправляется легкая аналитика: пинг загрузки библиотеки при импорте и локальная попытка с наилучшим усилием для каждого вызова публичной функции верхнего уровня partition. Сообщения о событиях выполнения, как сообщается, содержат версию пакета, нормализованные значения платформы/Python/архитектуры, характеристики разбиения с фиксированным перечислением и агрегированные счетчики конечных элементов в качестве параметров URL-запроса, без тела запроса и без содержимого документов, имен файлов, путей, URL, значений MIME, деталей исключений, учетных данных или постоянных идентификаторов. Доставка описывается как неблокирующая, без перенаправлений, повторных попыток, загрузки тела ответа или очереди, и не учитывает настройки прокси или netrc. Отказ возможен путем установки `DO_NOT_TRACK` или `SCARF_NO_ANALYTICS` в любое непустое значение перед импортом или разбиением.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.