Alejandría

Busca en Alejandría

Lenguajes y marcos

Docling

Biblioteca abierta para convertir documentos en estructuras utilizables por procesos de datos e IA.

01

En pocas palabras

Biblioteca abierta para convertir documentos en estructuras utilizables por procesos de datos e IA.

Qué problema resuelve

Extracción desordenada de texto, tablas y estructura desde documentos complejos.

Cuándo utilizarlo

Procesamiento documental y RAG. Ejemplo: preparar manuales con tablas para indexación.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

Analiza estructura y contenido con pipelines de conversión y opciones de OCR. Produce una representación documental exportable a formatos como Markdown y JSON.

Ejemplo de uso

Convertir un lote de manuales, inspeccionar títulos y tablas y dividir el resultado por secciones antes de generar embeddings. Mantener identificadores de documento y página para citar evidencias.

Formatos y capacidades

Entrada Capacidades
PDF (digital y escaneado) Detección de layout, orden de lectura, tablas, fórmulas, imágenes
DOCX, PPTX, XLSX, HTML, Markdown, AsciiDoc Conversión estructural
Imágenes (PNG, JPEG, TIFF) OCR y layout
Audio Transcripción (con modelos ASR)

La salida es un DoclingDocument que conserva jerarquía de secciones, tablas como estructuras y procedencia (página y coordenadas) de cada elemento, exportable a Markdown, HTML, JSON o DocTags.

Ejemplo: conversión y chunking para RAG

from docling.document_converter import DocumentConverter
from docling.chunking import HybridChunker

conversor = DocumentConverter()
resultado = conversor.convert("politica-credito-2026.pdf")
doc = resultado.document

print(doc.export_to_markdown()[:500])

chunker = HybridChunker(max_tokens=512)   # respeta secciones y tablas
for chunk in chunker.chunk(doc):
    paginas = sorted({p.page_no for item in chunk.meta.doc_items for p in item.prov})
    indexar(texto=chunker.contextualize(chunk), metadatos={"paginas": paginas})

contextualize antepone los títulos de sección al fragmento, lo que mejora la recuperación en RAG.

Línea de comandos y servicio

docling politica.pdf --to md --output salida/
docling escaneo.pdf --ocr-engine tesseract --ocr-lang spa

docling-serve expone la conversión como API HTTP para usarla desde otros servicios o pipelines.

Pipelines disponibles

Pipeline Cuándo
Estándar Modelos de layout y de tablas (TableFormer) + OCR opcional (EasyOCR, Tesseract, RapidOCR)
VLM Un modelo visión-lenguaje (como GraniteDocling) interpreta la página completa; útil en diseños complejos

Los modelos se descargan la primera vez; en entornos sin Internet, descárgalos previamente y apunta a una ruta local. Con GPU la conversión es mucho más rápida.

Docling frente a alternativas

MarkItDown es más ligero y rápido para documentos digitales sencillos; Docling ofrece mejor comprensión de layout y tablas a cambio de más recursos. Para extraer campos concretos del texto convertido, combínalo con LangExtract.

Criterios de implementación

Probar escaneos, idiomas y diseños representativos. Planificar recursos y descarga de modelos para ejecución local y revisar elementos extraídos antes de automatizar decisiones.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.