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.
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.