Teo FurlanEnglish

Proyectos / Pricor

Pricor

Resumen

Los modelos llenan el formulario, el motor hace las cuentas, vos firmás. Las listas de precios de proveedores en Excel o CSV se convierten en un único catálogo normalizado.

Rol
Diseño y desarrollo
Etiquetas
  • ai
Stack
  • Python
  • uv
  • FastAPI
  • openpyxl
  • xlrd
  • SQLite
  • Decimal
  • Ollama
  • Gemma 4 E4B
  • bge-m3
  • Laya
  • PyTorch
  • React
  • Vite
  • TypeScript
  • Vitest
  • pytest
Equipo
Individual, 2026
Lo que hice yo
Todo: el contrato de dominio y el motor decimal exacto, los adaptadores de archivos, el servidor FastAPI, el ajuste fino de Laya y su corpus sintético, el benchmark, la interfaz en React en inglés y español, y la documentación.
listamodelovosmotorcatálogoxlsx / csvLaya → Gemmaconfirmáscálculo exactonormalizado
FIG. 1.3 · Los modelos proponen, el motor calcula, vos firmás. Esquema, sin escala.

Problema

Los comercios pequeños de Argentina (ferreterías, librerías, distribuidoras) reciben cada semana listas de precios de sus proveedores en Excel o CSV. Cada proveedor nombra las columnas a su manera y omite metadatos: si el IVA está incluido o es neto, si el precio es por pack o por unidad, si el descuento es una cadena como 10+5, qué moneda, qué formato de números. Los sistemas de punto de venta y los ERP solo aceptan formatos rígidos, así que cargar a mano es lento, y una columna mal interpretada corrompe los costos sin avisar.

Construí Pricor para convertir esas listas en un único catálogo normalizado que el sistema del propio comercio puede importar.

Es un prototipo de investigación. Todavía no tiene usuarios, ni clientes, ni ahorros de tiempo medidos, y no afirmo tenerlos. Lo probé con listas de precios públicas de seis distribuidoras, no en el uso semanal de un comercio.

Restricciones

La decisión y por qué

Los modelos proponen, el motor calcula, vos firmás. Un modelo nunca ejecuta nada ni hace aritmética. Elige roles de columna de un conjunto cerrado, o sugiere respuestas, y vos confirmás.

Resultado

Medido con un conjunto de prueba reservado de 29 columnas de dos distribuidoras que el sistema nunca había visto, en una GPU RTX 4060 Laptop. El conjunto es pequeño y le faltan algunos roles (tasa de IVA, unidades por pack, código de barras, descuento, moneda), así que leelo como una primera señal, no como una garantía.

Enfoque Columnas correctas
Gemma 4 E4B sola 25 de 29 (86,2 %)
Heurísticas 24 de 29 (82,8 %), optimista: las reglas se escribieron después de ver los encabezados de una distribuidora
Laya con ajuste fino 22 de 29 (75,9 %)
Laya sin ajuste (zero-shot) 18 de 29 (62,1 %)

La cascada, que solo acepta las respuestas de las que está segura:

Es decir, la mayoría de las columnas todavía llega a una persona. Laya resuelve solo cerca del 10 % porque su confianza separa mal por debajo de su umbral.

Velocidad: Laya tarda 35,4 ms por columna en GPU y 516,5 ms en CPU (promedios); Gemma tarda 11,4 s por hoja. El ajuste fino de Laya tomó 290 s y llegó a 6,2 GB de VRAM.