About the project
El problema
Una empresa pide cotizaciones a varios proveedores, compra al más barato y semanas después llega la factura. Nadie vuelve a mirar si lo que facturaron es lo que se cotizó. Cuando alguien mira, es a mano y con la factura en papel.
Qué construimos
Un agente que verifica quete facturen lo que cotizaste, y que corre entero en la máquina: sin servidor, sin cuenta, y sin que un solo documento salga a internet.
La regla que ordena todo el diseño
El modelo solo convierte el documento en texto con coordenadas. Comparar, decidir y calcular lo hace código Python determinista.
Un modelo de 4 MB alucina montos. Comparar cifras es aritmética. En todo el repositorio no hay una sola decisión de negocio tomada por el modelo.
Cómo funciona
1 · Cotizaciones.Se sube un CSV con una fila por precio recibido. El sistema agrupa por producto, elige el precio total más bajo de cada grupo y emite un acta de adjudicación. Además:
- Verifica que cada fila cuadre consigo misma:
precio_unitario × cantidad = precio_total - Avisa cuando las ofertas cotizan cantidades distintas, porque entonces comparar totales no es de igual a igual
- Congela la cotización ganadora: guarda una copia. Un CSV se puede editar después, y el propósito del sistema es dejar constancia auditable
2 · Factura.Se sube como imagen o PDF. Se archiva con fecha y hora, se detectan los documentos repetidos por su contenido, y el OCR local la lee en1,6 segundos por página, sin GPU.
3 · Comparación.Se contrastan tres campos contra la adjudicación congelada:proveedor, cantidad y precio total. Una factura cubre varios productos a la vez, así que cada uno se compara con su propia adjudicación y el total impreso contra la suma de todos.
El resultado se muestrasobre la imagen de la factura: en verde los campos verificados y en rojo lo que no coincide, para que un humano audite cada observación sin buscar en el papel.
Hacki