feat(ai): agente IA interno con RAG sobre NAN + app web en /ai

- API: /api/ai/chat, /conversations, /documents con embeddings qwen3-embedding,
  coseno en SQLite, dedup por hash, historial de conversaciones
- Base de conocimiento semilla (6 docs, 36 chunks): catálogo DIAGONAL,
  propuestas del cotizador, créditos, proceso de venta, FAQ, privacidad
- App agente-ia (Vite/React/Tailwind, StudioBlank) servida en /ai/ vía nginx
- 21 tests nuevos (91/91 verdes)
This commit is contained in:
2026-08-22 03:04:47 +00:00
parent 8407fc24c3
commit 05c44478ec
32 changed files with 5448 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
# Las 4 propuestas del cotizador Frasa
El cotizador genera siempre 4 propuestas comerciales para la misma unidad. Todas parten del **precio de lista** (sin o con acabados, según lo que elija el cliente) y del **apartado** (por defecto $20,000 MXN), que ya se pagó y se descuenta del enganche.
Elementos comunes a las 4 propuestas:
- **Descuento**: fracción sobre el precio de lista. Valores por defecto: Bancario 0%, Infonavit-Cofinavit 0%, Contado 2%, Semi-contado 1%.
- **Monto de descuento** = precio de lista × descuento.
- **Precio final** = precio de lista − monto de descuento.
- **Número de mensualidades (N)**: meses completos desde hoy hasta la fecha de entrega de la unidad (mínimo 1). Las mensualidades se pagan durante la construcción.
## Propuesta 1 — Crédito Bancario
Para clientes que liquidarán con crédito hipotecario bancario a la entrega.
- Enganche = 2.5% del precio de **lista**, menos el apartado ya pagado.
- Pago final (contra entrega, cubierto por el crédito) = 90% del precio final con descuento.
- Mensualidades = precio final − apartado − enganche − pago final, dividido entre N.
## Propuesta 2 — Crédito Infonavit / Cofinavit
Para clientes que liquidarán con crédito Infonavit o Cofinavit (Infonavit + banco) a la entrega.
- Enganche = 2.5% del precio de **lista**, menos el apartado ya pagado.
- Pago final (contra entrega, cubierto por el crédito) = 95% del precio final con descuento.
- Mensualidades = precio de **lista** − pago final − apartado − enganche, dividido entre N. (Ojo: el Excel del cotizador usa aquí el precio de lista, no el precio final; así está validado y así se calcula.)
## Propuesta 3 — Contado
Sin mensualidades: el cliente paga casi todo de inmediato.
- Enganche = 90% del precio final con descuento, menos el apartado ya pagado.
- Pago final = 10% del precio final con descuento.
- Mensualidad: no aplica (N/A).
## Propuesta 4 — Semi-contado
Esquema 50 / 40 / 10 sobre el precio final con descuento.
- Enganche = 50% del precio final, menos el apartado ya pagado.
- Mensualidades = 40% del precio final, dividido entre N.
- Pago final = 10% del precio final.
## Comparación
El total pagado por el cliente en cualquier propuesta es: apartado + enganche + total de mensualidades + pago final. El cotizador destaca la propuesta con menor total pagado; en empate gana la primera (Bancario).