fix: indicador de subida colgado y apertura directa de servicio por nombre
1) "Subiendo comprobante..." no se quitaba nunca.
La miniatura solo se limpiaba con livewire-upload-finish, que cubre la
subida del archivo pero no el procesado posterior. Y updatedFotoComprobante
tenía tres rutas de salida tempranas (sin convId, análisis deshabilitado,
validación fallida) que ni siquiera llegaban al finally.
Ahora todo el cuerpo va dentro de un try/finally que emite siempre
'comprobante-listo', y el cliente limpia con ese evento del servidor en vez
de depender de los eventos internos de Livewire. Se añade además un timeout
de 45s como red de seguridad.
2) "cuenta de hbo" abría el listado completo en vez de HBO.
El regex de servicios.listar tenía las marcas quemadas (netflix|hbo|disney…),
así que capturaba la frase y devolvía data vacía antes de que la IA pudiera
extraer el nombre. Telegram no falla porque sus keywords son solo intents
genéricos y deja los específicos al agente.
- Se sacan las marcas del regex genérico.
- Nuevo detectarServicioPorNombre(): resuelve contra los nombres reales de
la tabla servicios (nada quemado en código, sin llamada a la IA) y abre
el servicio pedido.
- clickBoton('servicios.listar') ahora honra data.servicio, como hace
dispatchAction en Telegram.
- El prompt de GeminiIntentService pide data.servicio. Este servicio lo usa
solo el chat web; Telegram usa GeminiAgentService y no se toca.
El patrón de credenciales se refuerza y pasa a evaluarse primero, para que
"no puedo entrar a netflix" siga siendo soporte y no una intención de compra.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
281c9d5b02
commit
807472f07d
@@ -115,6 +115,8 @@ Los usuarios escriben en español latinoamericano informal, con jerga colombiana
|
||||
Acciones válidas — devuelve EXACTAMENTE una de estas:
|
||||
- menu.principal → saludo, "hola", "inicio", "volver", "menú", pedir ayuda general
|
||||
- servicios.listar → ver planes, catálogo, qué servicios hay, "quiero Netflix", "qué tienen", "cuánto vale", preguntar por precios
|
||||
Si el usuario nombra un servicio concreto (Netflix, HBO, Disney, Spotify…),
|
||||
devuélvelo en data.servicio para abrir ese servicio directamente.
|
||||
- promo.listar → ver promociones, ofertas, combos, descuentos, "hay algo especial"
|
||||
- recarga.iniciar → recargar saldo, cargar dinero, "quiero poner saldo", "cómo recargo", "agregar plata", "depositar"
|
||||
- credenciales.listar → ver contraseña, cómo entrar, "no puedo acceder", "dame el usuario", "mis datos de Netflix", "cómo me conecto"
|
||||
@@ -126,8 +128,10 @@ Ejemplos de clasificación:
|
||||
"quiero recargar" → recarga.iniciar
|
||||
"cargar saldo" → recarga.iniciar
|
||||
"poner plata" → recarga.iniciar
|
||||
"ver planes" → servicios.listar
|
||||
"qué tienen de Netflix" → servicios.listar
|
||||
"ver planes" → servicios.listar, data {}
|
||||
"qué tienen de Netflix" → servicios.listar, data {"servicio": "Netflix"}
|
||||
"cuenta de hbo" → servicios.listar, data {"servicio": "HBO"}
|
||||
"cuánto vale disney" → servicios.listar, data {"servicio": "Disney"}
|
||||
"hay promociones" → promo.listar
|
||||
"mis contraseñas" → credenciales.listar
|
||||
"no puedo entrar a mi cuenta" → credenciales.listar
|
||||
|
||||
Reference in New Issue
Block a user