Sobre el proyecto

Unstructured es una biblioteca de preprocesamiento de código abierto para datos no estructurados. Ingiere y particiona imágenes y documentos de texto —PDF, HTML, documentos de Word, correos electrónicos y muchos otros formatos— y los convierte en salidas estructuradas adecuadas para flujos de trabajo con modelos de lenguaje. Capacidades principales - Una función `partition` detecta automáticamente el tipo de archivo y lo enruta a particionadores específicos por formato (p. ej. `partition_pdf`, `partition_text`). - La salida es una lista de elementos de documento que se pueden serializar a cadenas o formatos estructurados. - Funciones modulares y conectores forman un sistema para la ingesta y el preprocesamiento de datos, pensado para ser adaptable entre plataformas. - El README también describe una oferta de servidor MCP (Unstructured Transform) que expone el procesamiento de documentos a agentes, manejando más de 60 tipos de archivos con parsing, enriquecimiento, chunking y embeddings dentro de una sesión de agente. Instalación y uso - Instalar vía PyPI: `pip install unstructured` para texto plano, HTML, XML, JSON y correos electrónicos; `pip install "unstructured[all-docs]"` para todos los tipos de documentos; o extras específicos como `unstructured[docx,pptx]`. - Las dependencias opcionales del sistema incluyen libmagic-dev (detección de tipo de archivo), poppler-utils (imágenes/PDF), tesseract-ocr (OCR, con tesseract-lang para idiomas adicionales) y libreoffice (documentos de MS Office); pandoc se incluye mediante pypandoc-binary. - Se publican imágenes Docker para x86_64 y Apple silicon; las imágenes se etiquetan por hash de commit, versión y `latest`, y también se pueden construir localmente con `make docker-build`. - El desarrollo local usa `uv` para la gestión de dependencias; `make install` ejecuta `uv sync --locked --all-extras --all-groups`. Los hooks opcionales de pre-commit y `make check`/`make tidy` admiten formateo y linting. Documentación y comunidad El proyecto remite a docs.unstructured.io para inicio rápido, funcionalidad principal, conectores, conceptos e integraciones. Proporciona una política de seguridad, una plantilla de informe de errores (con `scripts/collect_env.py` para información del entorno) y enlaces al sitio web de la empresa, a la documentación completa de la API y a un repositorio separado de procesamiento por lotes (unstructured-ingest). Telemetría El README indica que se envían análisis ligeros de forma predeterminada: un ping de carga de la biblioteca al importar y un intento local de mejor esfuerzo por cada llamada pública de particionado de nivel superior. Según se informa, los eventos en tiempo de ejecución contienen la versión del paquete, valores normalizados de plataforma/Python/arquitectura, características de particionado de enumeración fija y recuentos agregados de elementos finales como parámetros de consulta de URL, sin cuerpo de solicitud y sin contenido de documentos, nombres de archivo, rutas, URL, valores MIME, detalles de excepciones, credenciales ni identificadores persistentes. La entrega se describe como no bloqueante, sin redirecciones, reintentos, descarga del cuerpo de respuesta ni cola, y sin consultar configuraciones de proxy o netrc. Es posible optar por no participar estableciendo `DO_NOT_TRACK` o `SCARF_NO_ANALYTICS` con cualquier valor no vacío antes de importar o particionar.