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

@@ -38,6 +38,15 @@ export const config = {
pollCron: env('POLL_CRON', '*/5 * * * *'),
recordatorioCron: env('RECORDATORIO_CRON', '0 9 * * *'),
},
ai: {
// Proveedor NAN (OpenAI-compatible): chat + embeddings
apiKey: env('NAN_API_KEY'),
baseUrl: env('NAN_BASE_URL', 'https://api.nan.builders/v1'),
chatModel: env('NAN_CHAT_MODEL', 'qwen3.6'),
embedModel: env('NAN_EMBED_MODEL', 'qwen3-embedding'),
// Umbral mínimo de similitud coseno para recuperar contexto (0-1)
minScore: Number(env('AI_MIN_SCORE', '0.3')),
},
} as const
export type AppConfig = typeof config