Módulo 3: Comprensión de Documentos

1. Introducción: Documentos como Input

Descripción

Este módulo profundiza en la comprensión de documentos: cómo procesar PDFs, imágenes escaneadas y documentos mixtos para extraer texto, datos estructurados y responder preguntas. Los documentos son el input más común en sistemas empresariales: facturas, contratos, manuales, informes. No basta con "enviar una imagen al LLM" — hay que dominar el pipeline completo: extracción de texto, OCR, conversión a imágenes, schemas estructurados y manejo de documentos largos.

Por qué importa: El Document Extractor que construirás aquí es el núcleo del Document Analyzer del Módulo 8. Todo lo que aprendas (PyMuPDF, pdf2image, OCR vs vision, Pydantic) se integra en el proyecto final.

Este módulo no es una lista de librerías. Es un sistema de pensamiento: dado un documento arbitrario, ¿cuál es la ruta óptima para extraer lo que necesitas? Esa decisión depende de si el PDF tiene texto embebido, si es un escaneo, si necesitas datos estructurados o texto libre, si el documento tiene 2 páginas o 200. Aquí aprendes a tomar esa decisión y a implementarla.


¿Dónde Estamos en la Guía?

Contexto

Esta guía tiene 8 módulos organizados en 3 fases:

Phase 1: Fundamentos Multimodales (Módulos 1-3)
├── Módulo 1: Introducción a IA Multimodal
├── Módulo 2: Vision + LLMs
└── Módulo 3: Comprensión de Documentos    ← ESTÁS AQUÍ

Phase 2: Generación y Audio (Módulos 4-5)
├── Módulo 4: Generación de Imágenes
└── Módulo 5: Procesamiento de Audio

Phase 3: RAG, Casos de Uso y Proyecto (Módulos 6-8)
├── Módulo 6: RAG Multimodal
├── Módulo 7: Casos de Uso
└── Módulo 8: Proyecto Final — Document Analyzer Multimodal

¿Hacia dónde vamos?

Con los fundamentos multimodales (Módulo 1) y vision (Módulo 2), ahora atacas el caso de uso más demandado en producción: documentos. Las empresas no procesan imágenes aleatorias — procesan facturas, contratos, reportes, formularios. Este módulo convierte lo que aprendiste de Vision APIs en un pipeline documental completo.

La progresión es deliberada:

  1. Módulo 1 te dio el landscape — qué modalidades existen, qué modelos las soportan
  2. Módulo 2 te dio vision — enviar imágenes a GPT-4V, Claude 3, Gemini
  3. Módulo 3 (este) aplica vision a documentos reales — con técnicas adicionales: extracción de texto, OCR, schemas Pydantic
  4. Módulos 4-8 construyen sobre esta base — generación, audio, RAG, proyecto final

Qué es Comprensión de Documentos

Definición

Comprensión documental es el proceso de tomar documentos (PDFs, imágenes escaneadas, capturas) y extraer información útil: texto plano, datos estructurados (fecha, total, proveedor), o respuestas a preguntas. Combina técnicas clásicas (extracción de texto de PDFs, OCR con Tesseract) con modelos de visión (GPT-4 Vision, Claude 3) para máxima calidad.

No es un problema nuevo. Lo que cambió es cómo se resuelve: antes necesitabas reglas hardcodeadas por tipo de documento; ahora un LLM con visión entiende el documento como un humano lo haría.

Los tres enfoques fundamentales

Existen tres caminos para extraer información de un documento. Cada uno tiene fortalezas, limitaciones y un rango de aplicación diferente:

Enfoque 1 — Extracción directa de texto (PyMuPDF)

PDF con texto embebido → PyMuPDF extrae texto → Texto plano listo para LLM
  • Cuándo usarlo: El PDF fue generado digitalmente (Word, Google Docs, LaTeX). El texto es seleccionable con el cursor.
  • Ventajas: Rápido (milisegundos), gratuito (sin API calls), preserva estructura de párrafos.
  • Limitaciones: No funciona con PDFs escaneados. Pierde layout visual (columnas, tablas complejas). No captura información en imágenes dentro del PDF.
  • Calidad típica: 95-99% para PDFs digitales bien formateados.

Enfoque 2 — OCR tradicional (Tesseract)

Imagen/escaneo → Tesseract detecta caracteres → Texto plano (con posibles errores)
  • Cuándo usarlo: Documentos escaneados donde necesitas texto rápido y barato, sin depender de una API externa.
  • Ventajas: Open-source, funciona offline, soporta 100+ idiomas, sin costo por llamada.
  • Limitaciones: Calidad variable con documentos de baja resolución, escritura a mano, o layouts complejos. No "entiende" el contenido — solo convierte píxeles a caracteres.
  • Calidad típica: 80-95% dependiendo de la calidad del escaneo.

Enfoque 3 — Vision API (GPT-4V, Claude 3)

Imagen de página → Vision API "ve" el documento → Texto + comprensión semántica
  • Cuándo usarlo: Necesitas comprensión del contenido (no solo texto plano). Documentos complejos con tablas, gráficos, layouts irregulares. Cuando necesitas responder preguntas sobre el documento.
  • Ventajas: Entiende contexto visual, maneja tablas y layouts complejos, puede extraer datos estructurados directamente, funciona con cualquier tipo de documento.
  • Limitaciones: Costo por llamada ($0.01-0.05 por página), latencia (2-10 segundos por página), límites de tokens, requiere conexión a internet.
  • Calidad típica: 90-99% — superior a OCR en documentos complejos.

Matriz de decisión

EscenarioEnfoque recomendadoRazón
PDF digital, solo textoExtracción directaRápido, gratuito, alta calidad
Factura escaneada, datos estructuradosVision APIEntiende layout, extrae campos
500 páginas de archivo históricoOCR + LLM post-procesoCosto prohibitivo con Vision API
Formulario con escritura a manoVision APIOCR falla con manuscrito
PDF mixto (texto + tablas + imágenes)Extracción + Vision APICombina lo mejor de ambos
Procesamiento offline/air-gappedOCR (Tesseract)Sin dependencia de APIs cloud

Tipos de documentos

TipoCaracterísticasEnfoque principal
PDF con textoTexto seleccionable, vectorizadoExtracción directa (PyMuPDF)
PDF escaneadoSolo imágenes por páginaOCR o Vision API
Imagen de documentoJPG/PNG de factura, formularioVision API o Tesseract
Documento mixtoTexto + tablas + figurasCombinar extracción + vision
Documento largo50+ páginasChunking, resumen por secciones

Contexto: Del Papel al Pipeline

La evolución del procesamiento documental

El procesamiento de documentos no nació con los LLMs. Tiene décadas de historia, y cada era trajo herramientas nuevas:

Era 1 — Manual (pre-2000):
  Humanos leen documentos y transcriben datos a mano
  Archivistas, data entry operators, burocracia literal
  Velocidad: ~5 documentos/hora por persona
  Error humano: ~2-5%

Era 2 — OCR clásico (2000-2020):
  Tesseract, ABBYY, Adobe Acrobat OCR
  Convierte imágenes a texto con algoritmos de reconocimiento de caracteres
  Velocidad: ~100 documentos/hora
  Requiere post-procesamiento: el OCR genera texto sucio que necesitas limpiar
  Reglas hardcodeadas por tipo de documento

Era 3 — LLM + Vision (2023-presente):
  GPT-4 Vision, Claude 3, Gemini
  El modelo "ve" el documento como un humano
  Extrae datos estructurados en una sola llamada
  Velocidad: ~360 documentos/hora (10 seg/página con Vision API)
  Entiende contexto: no solo lee caracteres, comprende significado

Por qué 2023-2024 cambió todo

Antes de GPT-4 Vision (marzo 2023), procesar un documento complejo requería:

  1. Detectar el tipo de documento (PDF, imagen, escaneo)
  2. Aplicar OCR con Tesseract
  3. Limpiar el texto resultante con regex y heurísticas
  4. Escribir parsers específicos por tipo de documento (un parser para facturas, otro para contratos)
  5. Mantener esos parsers cuando cambiaba el formato

Ese pipeline tenía semanas de desarrollo por tipo de documento y era frágil — si el proveedor cambiaba el layout de su factura, el parser se rompía.

Con Vision APIs, el pipeline se simplificó:

  1. Convertir el documento a imagen
  2. Enviar la imagen al modelo con un prompt describiendo qué extraer
  3. Recibir datos estructurados

De semanas de desarrollo a horas. De parsers frágiles a prompts adaptables. De mantenimiento constante a zero-maintenance (el modelo se adapta a cambios de layout).

Lo que NO reemplazaron las Vision APIs

Las Vision APIs no eliminaron la necesidad de las herramientas clásicas:

  • PyMuPDF sigue siendo la opción correcta para PDFs con texto embebido (más rápido y barato que Vision)
  • Tesseract sigue siendo útil para procesamiento masivo offline donde el costo de Vision API es prohibitivo
  • Pydantic se volvió más importante, no menos — necesitas validar que la extracción del LLM tenga el formato correcto

El developer moderno no elige una herramienta — construye un pipeline que usa la herramienta correcta en cada paso.


Por Qué Importa la Comprensión Documental

Casos de uso reales

1. Extracción de facturas (Finanzas)

Automatizar la entrada de datos desde facturas escaneadas: fecha, proveedor, total, ítems, impuestos, número de factura. Empresas como Stripe, DocuSign y bancos procesan millones de facturas/mes con pipelines similares.

  • Antes: Un operador tarda ~5 minutos por factura. 10,000 facturas/mes = 833 horas de trabajo.
  • Después: Vision API + Pydantic extrae datos en 10 segundos por factura. 10,000 facturas = 28 horas de cómputo ($100-500 en API costs).
  • ROI típico: 90%+ reducción en tiempo de procesamiento.

2. Q&A sobre manuales técnicos (Soporte)

"¿Cómo se configura el modo X?" — el sistema busca en el manual de 200 páginas y responde con la sección relevante. Usado en soporte técnico, onboarding, documentación interna.

  • Antes: Buscar en PDF con Ctrl+F, leer contexto, interpretar. ~3-5 minutos por pregunta.
  • Después: Chunking del manual + embeddings + LLM. Respuesta en ~5 segundos.

3. Análisis de contratos (Legal)

Extraer cláusulas, fechas, partes involucradas, montos, penalizaciones. Despachos legales y departamentos de compliance revisan cientos de contratos.

  • Impacto: De 30 minutos de lectura por contrato a extracción automática de campos clave en segundos. El abogado revisa el output en lugar de leer el documento completo.

4. Procesamiento de formularios médicos (Salud)

Formularios de pacientes, recetas, resultados de laboratorio — frecuentemente escaneados o fotografiados. Datos sensibles que requieren precisión.

  • Reto especial: Escritura a mano, terminología médica, regulaciones de privacidad (HIPAA).
  • Solución: Vision API para manuscrito + validación estricta con Pydantic + procesamiento local cuando sea posible.

5. Indexación de archivos históricos (Gobierno/Academia)

Convertir documentos legacy (archivos escaneados de décadas) en texto buscable e indexable. Bibliotecas, archivos nacionales, universidades.

  • Escala: Millones de páginas. OCR batch (Tesseract) para el volumen, Vision API para documentos problemáticos.

6. Procesamiento de recibos (Retail/Expenses)

Fotografiar un recibo → extraer merchant, fecha, total, categoría. Apps de gestión de gastos como Expensify, SAP Concur.

  • Reto: Calidad variable (fotos con flash, arrugados, borrosos). Vision APIs manejan estos casos mejor que OCR clásico.

El Pipeline Documental en Detalle

Arquitectura completa

Este es el pipeline que construirás a lo largo del módulo. Cada cápsula cubre una o más etapas:

┌─────────────────────────────────────────────────────────────┐
│                    PIPELINE DOCUMENTAL                       │
│                                                             │
│  ┌──────────┐    ┌──────────────┐    ┌──────────────────┐  │
│  │ Document  │───▶│ Type         │───▶│ Text Extraction  │  │
│  │ Input     │    │ Detection    │    │ (PyMuPDF)        │  │
│  │ PDF/IMG   │    │              │    │       OR         │  │
│  └──────────┘    └──────────────┘    │ Image Conversion │  │
│                                      │ (pdf2image)      │  │
│                                      └────────┬─────────┘  │
│                                               │             │
│                                      ┌────────▼─────────┐  │
│                                      │ OCR (Tesseract)  │  │
│                                      │       OR         │  │
│                                      │ Vision API       │  │
│                                      │ (GPT-4V/Claude)  │  │
│                                      └────────┬─────────┘  │
│                                               │             │
│                                      ┌────────▼─────────┐  │
│                                      │ LLM Processing   │  │
│                                      │ Structured Output│  │
│                                      │ (Pydantic)       │  │
│                                      └────────┬─────────┘  │
│                                               │             │
│                                      ┌────────▼─────────┐  │
│                                      │ Database / API   │  │
│                                      │ Output           │  │
│                                      └──────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Cada etapa explicada

1. Document Input — El documento llega como archivo: .pdf, .jpg, .png, .tiff. Puede venir de un upload, un email, un sistema de archivos, o una API.

2. Type Detection — ¿Es un PDF con texto embebido o un escaneo? ¿Es una imagen directa? Esta decisión determina el camino del pipeline.

import fitz  # PyMuPDF

def detect_document_type(file_path: str) -> str:
    if file_path.lower().endswith((".jpg", ".jpeg", ".png", ".tiff", ".bmp")):
        return "image"

    if file_path.lower().endswith(".pdf"):
        doc = fitz.open(file_path)
        text = doc[0].get_text().strip()
        doc.close()
        if len(text) > 50:
            return "pdf_with_text"
        return "pdf_scanned"

    return "unknown"

3. Text Extraction (PyMuPDF) — Para PDFs con texto embebido, PyMuPDF extrae el texto directamente. Rápido, gratuito, alta fidelidad.

4. Image Conversion (pdf2image) — Para PDFs escaneados o cuando necesitas vision, conviertes cada página a imagen PNG/JPG.

5. OCR (Tesseract) o Vision API — Dependiendo del caso: Tesseract para volumen y costo bajo, Vision API para calidad y comprensión semántica.

6. LLM Processing + Structured Output — El texto extraído (o la imagen directamente) se envía al LLM con un prompt que describe qué datos extraer. Pydantic valida el output.

7. Database / API Output — Los datos estructurados se almacenan o se envían a otro sistema.

Mapeo de cápsulas al pipeline

Etapa del pipelineCápsula
Type Detection02 (Procesamiento de PDFs)
Text Extraction (PyMuPDF)02 (Procesamiento de PDFs)
Image Conversion (pdf2image)04 (Imágenes de documentos)
OCR (Tesseract)03 (OCR + LLM)
Vision API03 (OCR + LLM), 04 (Imágenes de documentos)
Structured Output (Pydantic)05 (Extracción estructurada)
Documentos largos (Chunking)06 (Documentos largos)
Pipeline completo08 (Proyecto: Document Extractor)

Roadmap del Módulo 3

#CápsulaQué verás
01Introducción (esta)Documentos como input, tipos, pipeline
02Procesamiento de PDFsPyMuPDF, pdf2image, extracción de texto e imágenes
03OCR + LLMTesseract vs Vision API, cuándo usar cada uno
04Imágenes de documentosConvertir páginas a imagen, enviar a vision
05Extracción estructuradaSchemas Pydantic, datos de invoices
06Documentos largosChunking, resumen por secciones
07Troubleshooting documentosPDFs corruptos, baja calidad
08Proyecto: Document ExtractorExtrae datos estructurados de PDFs/imágenes

Duración estimada: 55 min para el módulo completo.


Objetivos del Módulo

Al terminar este módulo serás capaz de:

  • Procesar PDFs y extraer texto e imágenes de páginas
  • Decidir cuándo usar OCR tradicional (Tesseract) vs Vision API
  • Convertir páginas de PDF a imágenes para vision
  • Extraer datos estructurados con schemas Pydantic
  • Manejar documentos largos (chunking, resumen por secciones)
  • Resolver problemas comunes (PDFs corruptos, baja calidad)
  • Construir un Document Extractor end-to-end como proyecto integrador

Objetivo profesional

Cuando alguien te diga "necesitamos automatizar el procesamiento de facturas", tú sabrás: ¿el PDF tiene texto o es escaneado? ¿Necesito OCR o Vision API? ¿Cómo valido el output con Pydantic? ¿Qué hago si el documento tiene 100 páginas? ¿Cuánto cuesta procesarlo? Ese nivel de criterio técnico es lo que este módulo te da.


Prerrequisitos de los Módulos 1-2

Lo que ya deberías dominar

Este módulo asume que completaste los Módulos 1 y 2. Específicamente:

ConceptoDónde lo aprendistePor qué lo necesitas aquí
Base64 encodingMódulo 1, Cápsula 06Enviar imágenes de páginas a Vision APIs
Vision APIsMódulo 2, Cápsulas 02-05Analizar páginas de documentos con GPT-4V/Claude
Prompting para visionMódulo 2, Cápsula 03Diseñar prompts que extraigan datos de documentos
Estimación de costosMódulo 1, Cápsula 06Calcular costo de procesar N páginas con Vision
Manejo de errores de APIMódulo 1, Cápsula 07Rate limits, timeouts al procesar documentos
Formatos de imagenMódulo 2, Cápsula 04Resolución y formato óptimo para páginas escaneadas

Si algún concepto te genera duda, revisa los Módulos 1-2 antes de continuar.


Setup Técnico

Prerrequisitos

  • Python 3.11+
  • Cuenta OpenAI (para GPT-4 Vision)
  • Opcional: Anthropic, Google AI
  • Poppler instalado (requerido por pdf2image)
  • Tesseract instalado (para OCR — opcional pero recomendado)

Instalación

pip install openai>=1.0.0 pymupdf pdf2image pillow pydantic python-dotenv

# Para OCR tradicional
pip install pytesseract

Dependencias del sistema

# macOS
brew install poppler tesseract

# Ubuntu/Debian
sudo apt-get install poppler-utils tesseract-ocr

# Windows: descargar Poppler y Tesseract desde sus releases oficiales
# Poppler: https://github.com/oschwartz10612/poppler-windows/releases
# Tesseract: https://github.com/UB-Mannheim/tesseract/wiki

Variables de entorno

export OPENAI_API_KEY="sk-..."

Script de verificación completo

Ejecuta este script para confirmar que todas las dependencias están instaladas correctamente. Además, genera un PDF de prueba que usarás en las cápsulas siguientes:

import sys

print("=" * 50)
print("VERIFICACIÓN DE SETUP — MÓDULO 3")
print("=" * 50)

errors = []

# 1. Python version
print(f"\n[1/6] Python: {sys.version}")
if sys.version_info < (3, 11):
    errors.append("Python 3.11+ requerido")

# 2. PyMuPDF
try:
    import fitz
    print(f"[2/6] PyMuPDF: v{fitz.version[0]}")
except ImportError:
    errors.append("PyMuPDF no instalado → pip install pymupdf")

# 3. pdf2image
try:
    from pdf2image import convert_from_path
    print("[3/6] pdf2image: OK")
except ImportError:
    errors.append("pdf2image no instalado → pip install pdf2image")

# 4. Tesseract (opcional)
try:
    import pytesseract
    version = pytesseract.get_tesseract_version()
    print(f"[4/6] Tesseract: v{version}")
except Exception:
    print("[4/6] Tesseract: NO DISPONIBLE (opcional)")

# 5. Pydantic
try:
    import pydantic
    print(f"[5/6] Pydantic: v{pydantic.__version__}")
except ImportError:
    errors.append("Pydantic no instalado → pip install pydantic")

# 6. OpenAI
try:
    from openai import OpenAI
    print("[6/6] OpenAI SDK: OK")
except ImportError:
    errors.append("OpenAI no instalado → pip install openai>=1.0.0")

# Crear PDF de prueba
if not errors:
    print("\n" + "-" * 50)
    print("Creando PDF de prueba...")
    doc = fitz.open()
    page = doc.new_page()
    text_content = (
        "FACTURA #2024-001\n\n"
        "Fecha: 2024-03-15\n"
        "Proveedor: TechCorp S.A.\n"
        "Cliente: Empresa ABC\n\n"
        "Concepto              Cantidad    Precio\n"
        "Licencia software     1           $500.00\n"
        "Soporte técnico       3 meses     $150.00\n"
        "Consultoría           10 horas    $1,000.00\n\n"
        "Subtotal: $1,650.00\n"
        "IVA (16%): $264.00\n"
        "Total: $1,914.00"
    )
    page.insert_text((72, 72), text_content, fontsize=12)
    doc.save("sample_invoice.pdf")
    doc.close()
    print("PDF creado: sample_invoice.pdf")

# Resultado
print("\n" + "=" * 50)
if errors:
    print(f"ERRORES ({len(errors)}):")
    for e in errors:
        print(f"  ✗ {e}")
    print("\nResuelve los errores antes de continuar.")
else:
    print("SETUP COMPLETO — Listo para el Módulo 3")
print("=" * 50)

Output esperado (todo OK):

==================================================
VERIFICACIÓN DE SETUP — MÓDULO 3
==================================================

[1/6] Python: 3.11.x
[2/6] PyMuPDF: v1.24.x
[3/6] pdf2image: OK
[4/6] Tesseract: v5.x.x
[5/6] Pydantic: v2.x.x
[6/6] OpenAI SDK: OK

--------------------------------------------------
Creando PDF de prueba...
PDF creado: sample_invoice.pdf

==================================================
SETUP COMPLETO — Listo para el Módulo 3
==================================================

Costos estimados del módulo

OperaciónCosto aproximado
Extracción de texto (PyMuPDF)$0.00 (local)
OCR con Tesseract$0.00 (local)
Vision API por página (gpt-4o-mini)~$0.01-0.02
Vision API por página (gpt-4o)~$0.03-0.05
Módulo completo (ejercicios + proyecto)~$0.50-2.00

Consejo: Usa PyMuPDF y Tesseract para desarrollo y pruebas. Reserva Vision API para cuando necesites calidad máxima o comprensión semántica.


Conexión con el Proyecto de la Guía

El Document Extractor (cápsula 08) es un sistema que recibe un PDF o imagen de documento y devuelve datos estructurados (ej. factura con fecha, total, ítems). Este componente se integra en el Document Analyzer del Módulo 8, que añade RAG para Q&A y TTS opcional.

Módulo 3: Document Extractor → extrae datos de PDFs/imágenes
    ↓
Módulo 8: Document Analyzer → usa extracción + RAG + TTS

Límites: Qué NO Cubre Este Módulo

  • Generación de PDFs — Este módulo extrae datos DE documentos, no genera documentos nuevos. Para crear PDFs, usa ReportLab o WeasyPrint.
  • Firmas digitales y criptografía — No cubrimos verificación de firmas, encriptación de PDFs ni certificados digitales.
  • Form builders — No construimos formularios interactivos. Procesamos formularios existentes.
  • Enterprise DMS (Document Management Systems) — No integramos con SharePoint, Alfresco o sistemas de gestión documental enterprise. Nos enfocamos en el pipeline de extracción.
  • PDF editing — No modificamos PDFs existentes (agregar anotaciones, combinar páginas). Usamos PyMuPDF solo para lectura.
  • Handwriting recognition avanzado — Cubrimos el caso básico con Vision API, pero no entrenamos modelos especializados en reconocimiento de manuscrito.

Evidencia de Éxito

Al terminar este módulo, sabrás que tuviste éxito si:

  • ✅ Dado un PDF, puedes determinar si tiene texto embebido o es un escaneo, y elegir la ruta de procesamiento correcta
  • ✅ Puedes extraer texto de un PDF digital con PyMuPDF en menos de 5 líneas de código
  • ✅ Puedes convertir un PDF a imágenes con pdf2image y enviarlas a una Vision API
  • ✅ Sabes cuándo usar Tesseract vs Vision API y puedes justificar la decisión con criterios de costo, calidad y latencia
  • ✅ Puedes definir un schema Pydantic para una factura y validar que la extracción del LLM sea correcta
  • ✅ Puedes procesar un documento de 50+ páginas con chunking sin exceder límites de tokens
  • ✅ Tu Document Extractor funciona end-to-end: recibe un PDF, detecta el tipo, extrae datos estructurados

Test rápido de autoevaluación

Si puedes responder estas preguntas al terminar el módulo, vas por buen camino:

  1. ¿Cómo detectas si un PDF tiene texto embebido o es un escaneo?
  2. ¿Cuánto cuesta procesar 100 páginas con gpt-4o-mini vs Tesseract?
  3. ¿Qué pasa si el LLM devuelve un JSON con campos faltantes y tienes un schema Pydantic?
  4. ¿Cómo manejas un documento de 200 páginas que excede el límite de contexto del modelo?

Resumen

  • Comprensión documental combina tres enfoques: extracción directa (PyMuPDF), OCR (Tesseract) y Vision APIs (GPT-4V, Claude 3).
  • La evolución del procesamiento documental pasó de manual → OCR clásico → LLM + Vision, y 2023-2024 fue el punto de inflexión.
  • Tipos de documentos: PDF con texto, escaneados, imágenes, mixtos, largos — cada uno tiene su ruta óptima.
  • El pipeline completo: documento → detección de tipo → extracción/OCR/vision → LLM → Pydantic → output estructurado.
  • Casos de uso reales: facturas, contratos, manuales, formularios médicos, archivos históricos — con impacto medible en tiempo y costo.
  • Este módulo te prepara para el Document Analyzer del Módulo 8.
  • Setup: PyMuPDF, pdf2image, Poppler, Tesseract, OpenAI, Pydantic.

Recursos adicionales

  1. PyMuPDF Documentation — Extracción de PDFs
  2. pdf2image — PDF a imágenes
  3. Tesseract OCR — OCR tradicional
  4. OpenAI Vision — Análisis con LLMs
  5. Pydantic — Schemas y validación
  6. Poppler — Herramientas PDF (requerido por pdf2image)
  7. pytesseract — Wrapper Python para Tesseract