Sobre el proyecto
Xberg es un motor políglota de inteligencia documental construido en torno a un núcleo en Rust. Apúntalo a un PDF, una imagen escaneada, una hoja de cálculo, un archivo de audio, una URL, un archivo comprimido o un árbol de código fuente y devuelve texto limpio, tablas, metadatos y datos estructurados. La detección de formato, la lectura, el OCR y la extracción son gestionados por un solo motor en lugar de ensamblarse a partir de bibliotecas separadas.
Cobertura y capacidades
- Formatos: el README afirma 107 formatos en 141 extensiones de archivo y 56 alias MIME, abarcando documentos de Office (Word, Excel, PowerPoint, OpenDocument, Apple iWork, Hangul HWP/HWPX), PDF, libros electrónicos (EPUB, FB2), bases de datos (DBF, SQLite, GeoPackage), imágenes raster y avanzadas (PNG, JPEG, TIFF, JPEG2000, JBIG2, HEIC/AVIF, SVG), pistas de audio y vídeo (MP3, M4A, WAV, WebM, pistas de audio MP4/MPEG), web y datos estructurados (HTML, XML, JSON, YAML, TOML, CSV), variantes de texto y Markdown (AsciiDoc, CommonMark, MyST, Quarto, Djot, MDX, DocTags, reStructuredText, Org), correo electrónico (EML, MSG, PST), archivos comprimidos (ZIP, TAR, GZ, 7z) y formatos académicos (BibTeX, RIS, EndNote, LaTeX, Typst, JATS, cuadernos Jupyter, DocBook, OPML).
- Inteligencia de código: estructura, importaciones, símbolos y docstrings de 371 lenguajes de programación mediante tree-sitter, con fragmentación consciente de la sintaxis pensada para canalizaciones RAG.
- OCR: backends Tesseract, PaddleOCR, Candle o VLM, con cadenas de respaldo, puntuaciones de confianza y detección automática de idioma.
- Diseño y tablas: modelos ML de diseño (PP-DocLayout-V3, RT-DETR) y modelos de estructura de tablas (TATR, SLANet) reconstruyen el orden de lectura y las cuadrículas de celdas.
- Enriquecimiento: NER, extracción de palabras clave (YAKE/RAKE), resumen, traducción, redacción de PII, clasificación de páginas, detección de QR, detección de idioma y un formato de reducción de tokens TOON.
- Embeddings y búsqueda: embeddings ONNX locales o embeddings alojados por proveedores, recuperación dispersa y de interacción tardía, y reranking con cross-encoder.
- Extracción estructurada: JSON guiado por esquema a partir de documentos usando motores locales (Ollama, LM Studio, vLLM) o proveedores LLM alojados.
- Salida: texto plano, Markdown, Djot, HTML, árbol JSON o Docling DocTags, además de renderizadores personalizados.
Interfaces y despliegue
Se enumeran quince enlaces: Rust, Python, Node.js, WebAssembly, Java, Go, C#, PHP, Ruby, Elixir, Dart, Kotlin (Android), Swift, Zig y C FFI. Las opciones de despliegue incluyen una API de biblioteca, una CLI con 14 comandos (extract, batch, detect, formats, version, cache, tree-sitter, doctor, serve, mcp, api, embed, chunk, completions), un servidor de API REST mediante `xberg serve`, un servidor MCP con 9 herramientas, 3 prompts y 4 recursos para Claude Desktop, Cursor y clientes similares, además de empaquetado Docker y Helm. El README señala operación solo con CPU por defecto, caché por hash de contenido, procesamiento por lotes en paralelo y tiempos de espera por archivo.
Notas
Algunas capacidades están condicionadas por indicadores de características de Cargo (url-ingestion, transcription, reranker, layout/ORT); los paquetes precompilados y la imagen Docker incluyen un conjunto común. El proyecto se describe a sí mismo como el sucesor de Kreuzberg y tiene licencia MIT. Las afirmaciones de rendimiento y benchmarks del README son propias del proyecto y no se verifican de forma independiente aquí.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.