Documentación interna: qué es el Clasificador, cómo funciona el circuito con los despachantes y qué hace cada parte. El modelo propone; el humano decide.
01Qué es
A partir de fotos y/o la descripción de un producto, sugiere su posición arancelaria (NCM) y calcula el costo de importarlo a la Argentina.
Combina visión (leer la foto y extraer atributos), búsqueda sobre el nomenclador oficial y un re-rank del modelo para elegir la hoja correcta. Los aranceles (DIE, IVA, ganancias, IIBB), las intervenciones (ANMAT, INAL, etc.) y el antidumping salen de las fuentes reales (ARCA / PCRAM / CNCE), no del modelo.
El valor no es solo la sugerencia: es el bucle. Cada corrección del despachante se convierte en regla y ejemplo para las próximas clasificaciones.
02Dos tipos de usuario
La misma herramienta, dos públicos que no se cruzan.
🧑✈️Despachantes B2BOX
Los nuestros. Hacen el circuito completo (admin → bandeja → admin) sobre las importaciones de B2BOX. Son los únicos que clasifican trabajo de B2BOX.
🏢Usuarios externos (SaaS)
Otros importadores a los que les damos la herramienta. Clasifican sus propios productos. No ven la bandeja de B2BOX ni clasifican nada de B2BOX.
03El circuito
El paso del despachante es humano a propósito: una propuesta del modelo no es un resultado hasta que una persona la mira.
04Cómo clasifica
De la foto (o el texto) a un NCM con su costo, en pasos verificables.
- Caché exacto — si el SKU/EAN ya tiene un NCM validado por un humano, se reusa. Costo cero.
- Visión → atributos — el modelo declara material, función, uso, medidas. Cada dato lleva su fuente (foto, PDF, formulario).
- Retrieval híbrido — BM25 (léxico) + embeddings Voyage (semántico) sobre el nomenclador, fusionados.
- Re-rank — el modelo elige la hoja entre los candidatos, aplicando RGI y las reglas aprendidas.
- Chequeo de cortes — en código se verifica que la hoja no contradiga un dato numérico (peso, pantalla, FOB).
- Enriquecido real — DIE, alícuotas PCRAM, intervenciones y antidumping desde la fuente, más el costo.
05El bucle humano
Lo que hace que el sistema mejore: el despachante revisa, corrige y enseña.
Confirmar o corregir
Cada clasificación se persiste con su rastro completo. El despachante confirma la #1 (nos da la razón) o la corrige. La distinción sostiene la métrica clave: tasa de corrección = corregidas / revisadas.
La regla enseña el patrón
Al corregir, el despachante escribe el criterio ("las botellas de aluminio para bebidas van a 7612.90, no a 8309"). Esa regla se le inyecta al modelo como restricción dura la próxima vez que clasifique algo del mismo capítulo.
06Features
Lo que hace la herramienta día a día. Marcadas Nuevo las de la última iteración.
🔔Campanita Nuevo
El tab Bandeja muestra, desde cualquier pantalla, cuántos pendientes hay sin ver. Abrir uno lo apaga.
📋Similar previo Nuevo
Al pasar un producto, si ya clasificaste uno parecido (embeddings) lo ofrece como opción con un click.
🖼️Miniatura en bandeja Nuevo
La foto de B2BOX se guarda como thumbnail al clasificar, así se reconoce el producto en el historial.
📄Fotos reales del PDF Nuevo
Packing list en PDF: la foto de cada renglón se recorta de verdad (poppler + visión), no solo se describe.
🔁Mismo producto
Copiar el NCM de otro producto ya clasificado del mismo envío, sin gastar una llamada al modelo.
❓Pregunta dirigida
Cuando un corte depende de un dato que falta (peso, FOB), pregunta una sola cosa en vez de adivinar.
🛡️Verificaciones
Intervenciones (ANMAT, INAL, SENASA…) y antidumping (CNCE) sobre el NCM elegido, desde la fuente.
💰Costos al centavo
Gasto real de Anthropic por clasificación y total. Panel solo para admin.
⚙️Editor de prompts
Editar los prompts de visión y re-rank desde la UI; persisten en Supabase. Gateado a dev.
07Lote / packing list
Un envío entero: una clasificación por producto, con su foto y su avance visible.
Se sube un Excel (fotos ancladas a las celdas) o un PDF. En ambos casos se reconstruye la tabla y se clasifica de a uno — no los 30 en un request: así cada resultado llega apenas está, el usuario ve el avance y puede frenar sin perder lo ya pagado.
Excel
Las fotos vienen ancladas a las celdas: se extraen y se muestran directo.
La página se renderiza, el modelo ubica la caja de cada foto, se recorta con pdftoppm y se
liga al renglón por SKU/descripción. Un filtro de calidad descarta los recortes vacíos.
08Roles y acceso
Login con Supabase, separado del admin. El costeo y las pantallas de dev están gateados.
| Rol | Puede |
|---|---|
| todos (logueados) | Clasificar, ver la bandeja, revisar y corregir. |
| dev | Lo anterior + costeo (modo completo del clasificador). |
| head_of_dev · admin | Todo + las pantallas de gestión: Prompts, Inspector, Costos y esta Ayuda. |
09Endpoints principales
Todos bajo sesión. El circuito con el admin entra por un endpoint externo con API key.
| Método | Ruta | Qué hace |
|---|---|---|
| POST | /api/clasificar | Clasifica un producto → NCM + aranceles + costo. |
| POST | /api/clasificar/responder | Responde una pregunta dirigida y fija la hoja sin re-clasificar. |
| GET | /api/bandeja | Lista de solicitudes del despachante. |
| GET | /api/bandeja/pendientes | Conteo + referencias de pendientes (la campanita). |
| GET | /api/bandeja/:ref | Detalle + aranceles + similares previos. |
| POST | /api/bandeja/:ref/clasificar | Corre el modelo sobre lo que mandó el admin. |
| POST | /api/bandeja/:ref/resolver | Confirma o descarta; recién acá el admin recibe el NCM. |
| POST | /api/lote/analizar | Planilla/PDF → tabla de productos (con fotos). No llama al modelo. |
| GET | /api/metricas | Tasa de corrección y otros indicadores del bucle. |
10Deploy
Coolify con Nixpacks (autodetect Node).
nixpacks.tomlagregapoppler_utilsal build (fotos del PDF). Sin él, cada renglón queda con su descripción de texto — no rompe.- Los datos del nomenclador y las alícuotas son generados, no versionados: se reconstruyen con los scripts de ingesta.
- La base de
clasificaciones(historial de correcciones) es la única irreemplazable: sobrevive a re-ingestas.
