0 1 0 1 2 3 4 5 6 7 8 9 0 0 1 2 3 4 5 6 7 8 9 0

Un asesor financiero con IA para empresas salvadoreñas que revisa la contabilidad cada mañana y escribe, sin que se lo pidan, cuando algo necesita atención: los números los calcula código, las palabras el modelo.

(01). PROYECTO

¿Puede una IA escribirle al dueño de un negocio sobre sus finanzas sin inventar jamás un número?

Marvin es el producto propio de Le Website Tech: un asesor financiero con IA para pequeñas y medianas empresas y ONG de El Salvador. Cada mañana ingiere las facturas electrónicas de Hacienda, el cierre mensual que manda el contador y las exportaciones de cualquier sistema contable, calcula once indicadores, revisa veintisiete obligaciones legales y, cuando algo necesita atención, escribe un correo corto en español salvadoreño, antes de que alguien pregunte. Construido con un despacho contable como socio, está en su tramo final antes del lanzamiento.

Diseñamos y construimos el producto de punta a punta: ingesta, motor determinista, redactor con LLM y cuatro compuertas, aislamiento por cliente y aprobación humana.

Recorrido – 2026

marvin-L1
marvin-L2
marvin-L3
marvin-diagram

(01) SOBRE EL PROYECTO

¿Qué hace falta para que un LLM sea seguro cerca de la contabilidad de alguien?

Dos reglas moldearon toda la arquitectura: los números los calcula código, nunca el modelo, y nada se afirma sin trazabilidad. Cada cifra que Marvin muestra se abre hasta su indicador, su fórmula y el documento de origen. El lado legal es una base de conocimiento curada a mano —veintisiete obligaciones con ley, artículo, texto literal y multa— y no el recuerdo que un modelo tenga del código tributario; los umbrales que dependen del salario mínimo se niegan a adivinar cuando falta un valor.

El modelo es redactor, no analista. Su ingeniería de LLM es un solo prompt de sistema que fija la voz de marca —voseo salvadoreño, tono sereno, sin signos de exclamación—, una lista de palabras prohibidas y un contrato JSON estricto; el hallazgo entra como JSON y vuelve un borrador a temperatura 0.3 desde Kimi K2 o Qwen, detrás de una única interfaz de proveedor elegida por costo. Cuatro compuertas deciden luego si el borrador sale: validación de esquema, un umbral de confianza de 0.75, una verificación de procedencia que rechaza cualquier dígito que no esté en la entrada, y una revisión de voz. Si alguna falla, habla una plantilla determinista: el silencio es un resultado diseñado, no un error. El costo en tokens se guarda en cada mensaje desde el primer cliente, y sin clave configurada las plantillas salen solas.

(02) DATOS Y AISLAMIENTO

¿De dónde salen los datos y quién puede verlos?

Tres entradas: un parser de facturas electrónicas de Hacienda construido contra cincuenta y seis DTE reales de dos versiones de esquema, con dinero solo en decimales y límites de tamaño; cierres por correo a una dirección por empresa que exige un token y un remitente registrado; y cualquier exportación en Excel o CSV —Mónica, SAP Business One, Odoo, QuickBooks— donde la hoja, las columnas y las fechas se infieren y una persona confirma el mapeo de cuentas una sola vez.

El aislamiento se aplica dos veces: seguridad a nivel de fila en PostgreSQL con el tenant fijado en cada transacción, más el acotamiento en los repositorios, dos roles de base de datos —la aplicación ni siquiera arranca con el rol de migraciones— y una batería de pruebas de aislamiento que condiciona cada versión. Nada crítico llega a un cliente sin la aprobación del socio experto en la cola de revisión.

(03) LO QUE SIGUE

El siguiente hito: recuperación sobre la ley salvadoreña

La base legal está diseñada como generación aumentada por recuperación (RAG) sobre un corpus versionado de derecho laboral, mercantil y tributario: fichas de conocimiento con norma, artículo, obligación, plazo, sanción, fuente y fecha de verificación, para que Marvin responda una consulta con el artículo, la cita y un nivel de confianza, y la escale a un especialista cuando el riesgo sea rojo. Es el segundo hito a propósito: primero el motor determinista tenía que ser confiable.

Por debajo: Python 3.12 y FastAPI, SQLAlchemy 2 y Alembic sobre PostgreSQL 16, React y Vite al frente, 439 pruebas con ruff y mypy estricto, Sentry con datos sensibles limpiados, una línea de registro JSON por petición y una tabla de latido que manda una alerta por correo si falla la corrida de la mañana. Desplegado en DigitalOcean con Postgres gestionado y correo por un relay autenticado con SPF, DKIM y DMARC.

marvin-f-SQ1
marvin-f-PW1
marvin-f-PW2
marvin-f-SQ2

(04) OBJETIVOS DEL PROYECTO

Avisar antes del plazo, con la ley y la cifra, en palabras que el dueño lee en un minuto.

Que cada número se rastree hasta su documento de origen, y que cada mensaje lo apruebe una persona antes de enviarse.

marvin-L1
marvin-L3
marvin-L2
marvin-L4

Marvin dice menos que un tablero y se lee más: un mensaje claro, con la cifra y qué hacer, cada mañana.

Francisco Gonzalez Gerente de proyecto

NEXT PROJECT

Apps

Servicios