Import inteligente de Excel
El principio: nos adaptamos al archivo del usuario, no al revés. No hay plantilla.
El módulo es core/aiuda_core/connectors/smart_import.py.
Cómo funciona
Sección titulada «Cómo funciona»- Lectura —
read_table()acepta XLSX (openpyxl) o CSV (con tolerancia a BOM) y devuelve headers + filas. - Mapeo con Haiku —
infer_mapping()manda al modelo los nombres de columna y 3 filas de muestra, y pide un JSON que mapee cada campo destino (folio, cliente, teléfono, monto, fechas) al nombre EXACTO de columna del archivo, onull. El resultado se valida contra los headers reales: si el modelo alucina una columna, se descarta. - Import —
import_rows()es idempotente por(tenant, folio), parsea fechas en los formatos comunes mexicanos (dd/mm/aaaa, ISO, etc.), limpia montos con$y comas, y normaliza teléfonos de 10 dígitos al formato WhatsApp (521…).
Decisiones de diseño
Sección titulada «Decisiones de diseño»- Haiku, no Sonnet: mapear columnas es triage, cuesta centésimas de centavo.
- Campos requeridos: folio, cliente, monto y vencimiento. Si el modelo no los encuentra, el reporte lo dice con claridad en lugar de importar basura.
- El usuario ve el mapeo: la consola muestra “folio ← «No. Factura»” para que el dueño confirme que se entendió bien. Transparencia, como todo aquí.
¿Qué sigue?
Sección titulada «¿Qué sigue?»- Anatomía de un agente
- Referencia API — endpoint
POST /v1/import