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. El owner y el admin ven el resumen de costos en el menú de su nombre → Uso de IA.

  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 Facturación → Documentos del cliente con el estado Revisión (filtrá por Requiere revisión).
  • Al abrirlo ves la Vista previa, la Clasificación y la Metadata de extracción.
  • Si el problema fue del procesamiento, podés intentar de nuevo con Reprocesar.

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.

ProblemaCausa probableQué hacer
Campos críticos extraídos incorrectamenteImagen de baja resolución o con ruidoUsar una imagen de al menos 300 DPI; evitar fondos con patrones
Datos cortados en el margenEl documento fue fotografiado con ánguloCapturar el documento plano y centrado en el encuadre
Fecha extraída en formato incorrectoEl proveedor usa formato no estándarCorregir 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ípicoCorregir el tipo manualmente al revisar; la corrección mejora detecciones futuras
Confianza siempre baja para un proveedorEl diseño del documento es muy particularDespués de 3-5 correcciones manuales el modelo mejora significativamente