Ir al contenido

Agente OCR + Extractor

El agente OCR + Extractor convierte imágenes y PDFs de facturas físicas en JSON estructurado que el sistema puede procesar: emisor, receptor, fecha, líneas de detalle, montos, impuestos y total. Es el primer agente que corre en el pipeline de facturas recibidas cuando el documento no viene como XML electrónico.

Video próximamente · 90s

Por cada documento procesado, el agente retorna:

  • Emisor: nombre, cédula, tipo de cédula, actividad económica.
  • Fecha de emisión y fecha de recepción si está visible.
  • Líneas de detalle: descripción, cantidad, precio unitario, descuento, subtotal.
  • Impuestos: tipo (IVA, ISC, etc.), tarifa y monto por línea.
  • Totales: subtotal, impuesto total, descuentos, otros cargos, total del comprobante.
  • Moneda (colones o dólares).
  • Tipo de documento detectado (factura, recibo, estado bancario, otro).

Para cada campo, el agente reporta una confianza de 0 a 1. Los campos que no puede encontrar retornan null con confianza 0 — nunca inventa datos.

El agente usa Claude Vision como modelo primario (Anthropic). Si Claude no está disponible o falla, el sistema hace fallback automático a GPT-4 Vision (OpenAI). Este switching es transparente para vos — nunca necesitás configurarlo manualmente.

El modelo exacto utilizado, los tokens consumidos y el costo en USD quedan registrados en el log de cada AgentAction. Podés ver esto en Admin → Costos LLM.

  1. Subís una imagen (JPG, PNG) o PDF al sistema (desde la pantalla de facturas recibidas o directamente desde email inbox).
  2. El sistema crea un DocumentoSoporte y encola el job OcrAgent.
  3. El agente envía el documento al modelo de visión con instrucciones estructuradas.
  4. El modelo retorna un JSON con los campos extraídos y confianza por campo.
  5. Asientra valida el JSON contra el esquema esperado.
  6. Si la confianza global es ≥ 0.7: el documento avanza al paso de clasificación CAByS y sugerencia de asiento.
  7. Si la confianza global es < 0.7: el documento entra a la cola de revisión manual con una bandera visible.

La confianza global es el promedio ponderado de los campos críticos (cédula emisor, fecha, total). Si uno de esos campos cae muy bajo, arrastra la confianza global.

Cuando un documento entra a revisión:

  • Aparece en Facturas → Recibidas → Pendientes de revisión OCR.
  • Ves los campos extraídos con sus confianzas individuales.
  • Los campos con confianza baja se destacan en amarillo.
  • Podés corregir cualquier campo directamente y confirmar.

Tus correcciones retroalimentan el sistema vía RAG: el agente aprende las convenciones de extracción de ese cliente específico para mejorar el rendimiento en documentos futuros similares.

Cada cliente tiene su propio espacio de memoria (embeddings en pgvector, namespace cliente_{id}). El agente consulta correcciones anteriores del contador para ese cliente antes de generar el resultado. Esto significa que con el tiempo, el agente se vuelve más preciso para los proveedores habituales del cliente.

| Problema | Causa probable | Qué hacer | |---|---|---| | Campos críticos extraídos incorrectamente | Imagen de baja resolución o con ruido | Usar una imagen de al menos 300 DPI; evitar fondos con patrones | | Datos cortados en el margen | El documento fue fotografiado con ángulo | Capturar el documento plano y centrado en el encuadre | | Fecha extraída en formato incorrecto | El proveedor usa formato no estándar | Corregir en la cola de revisión; el sistema aprende el patrón | | Tipo de documento incorrecto (“estado bancario”) | El diseño del documento es atípico | Corregir el tipo manualmente al revisar; la corrección mejora detecciones futuras | | Confianza siempre baja para un proveedor | El diseño del documento es muy particular | Después de 3-5 correcciones manuales el modelo mejora significativamente |