El reto: un PDF entra, una tabla ordenada sale
Mapa conceptual
# Reto: crea un analizador de PDF ## El reto: un PDF entra, una tabla ordenada sa ## Contexto · Wikipedia ## El flujo: documento → texto → JSON → tabla
Contexto · Wikipedia
Reto: Reto puede referirse a: Amikeca Reto, "Red de la amistad" en esperanto. Competición, desafío. Los habitantes de Retia.
Wikipedia: Reto
Texto consultado y adaptado de Wikipedia (licencia CC BY-SA 4.0).

Especificación mínima: (1) pantalla de subida de un PDF (factura o contrato, tú eliges el caso); (2) la app extrae texto y pide a la IA un JSON con campos definidos (proveedor, fecha, total, IVA, vencimiento — o partes, objeto, plazo, monto); (3) tabla de resultados con un nivel de confianza por campo y semáforo para lo que la IA no encontró; (4) botón de copiar/corregir por campo. Fuera del alcance: OCR de fotos, multi-PDF, plantillas por proveedor, historial y usuarios. Este reto es distinto a los anteriores: aquí la IA corre dentro de tu producto y su salida no es determinista. Un CRM o un tablero puedes probarlos una vez y ya; un extractor con IA se prueba con 10 documentos distintos, porque el número 11 va a traer el total en otra parte.
El flujo: documento → texto → JSON → tabla
Cómo atacarlo
- Facturas de un giro o contratos de arrendamiento. Mientras más específico el caso, más clara la lista de campos.
| Campo | Por qué se pierde | Defensa en el diseño |
|---|---|---|
| Total | Aparece "Total", "Gran total", "Total MXN" y a veces dos veces | Pedir también la frase textual donde lo encontró; humano valida |
| Fecha | Formatos: 12/03, 03-12, "12 de marzo" | Normalizar a AAAA-MM-DD en la salida, no en la interpretación |
| RFC/proveedor | Razones sociales con S.A. de C.V. en 4 variantes | Lista de alias permitidos o dejar en amarillo siempre |
| IVA | No todas las facturas lo desglosan | null es respuesta válida: el semáforo rojo es información, no fracaso |
Pruebas tu analizador con 10 facturas y va bien. Un amigo te pasa un PDF escaneado (foto del documento) y la app revienta. ¿Qué concluyes?
En un extractor con IA, mostrar el campo como "no encontrado" (rojo) cuando la confianza es baja es un fracaso de la herramienta.
Escribe el prompt de extracción de TU caso (documento elegido, los 5-8 campos exactos, la instrucción de JSON con confianza y null) y pégalo en el foro. Compáralo con el de dos compañeros: ¿quién definió mejor qué pasa cuando el dato NO está?
Pista
Si tu prompt no dice qué hacer cuando un campo no aparece, tu app va a improvisar con tu reputación.Siguiente reto: Conecta dos APIs — de manejar un documento a manejar dos sistemas que no sabían el uno del otro: el músculo de la integración real.
Sigue: Cómo usar el laboratorio
Objeto de la misma ruta para continuar aprendiendo.