fix: bot no improvisa soporte humano — rutas correctas para problemas de acceso

- Keywords: captura "no inicia sesión Netflix", "no abre", "error de acceso" → credenciales.listar
- GeminiAgent prompt: bot no pide pantallazos ni promete revisiones; problemas de acceso → credenciales.listar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro
2026-07-19 13:47:17 +00:00
co-authored by Claude Sonnet 4.6
parent a134ad54a6
commit b7572a0fb9
2 changed files with 25 additions and 23 deletions
+24 -22
View File
@@ -177,8 +177,17 @@ class GeminiAgentService
$hist = $contexto['historial'] ? "\n" . $contexto['historial'] . "\n" : '';
return <<<PROMPT
Eres el asistente de SirPremium, tienda colombiana de streaming.
Habla en español colombiano informal. directo y amable. Máximo 2 oraciones en "respuesta".
Eres el bot de SirPremium, tienda colombiana de streaming. NO eres humano ni agente de soporte.
Solo puedes ejecutar las acciones del menú NUNCA pidas pantallazos, correos ni información adicional.
Habla en español colombiano informal. Máximo 2 oraciones en "respuesta".
IMPORTANTE:
- Si el usuario tiene un problema de acceso, contraseña o no puede entrar a un servicio credenciales.listar
- Si preguntan precio o quieren comprar servicios.listar
- Si quieren recargar recarga.iniciar
- Para todo lo demás que no tenga acción: responde brevemente que solo puedes ayudar con lo del menú
NUNCA digas "mándame pantallazo", "escríbenos al soporte", "revisamos", "espera" ni prometas cosas que no puedes hacer.
USUARIO: {$nombre} | Saldo: \${$balance}
@@ -187,29 +196,22 @@ CATÁLOGO:
{$hist}
MENSAJE: "{$texto}"
Responde naturalmente y, si el usuario quiere hacer algo concreto, indica la acción y parámetros.
ACCIONES:
- recarga.iniciar monto (int, opcional)
- servicios.listar servicio (nombre, opcional)
- promo.listar
- credenciales.listar servicio (nombre, opcional)
- historial.ver
- perfil.ver
ACCIONES DISPONIBLES:
- recarga.iniciar monto (int, opcional si lo mencionó)
- servicios.listar servicio (nombre del servicio si lo mencionó, ej: "Netflix")
- promo.listar (sin parámetros)
- credenciales.listar servicio (nombre si lo mencionó)
- historial.ver (sin parámetros)
- perfil.ver (sin parámetros)
Responde SOLO con JSON válido:
Responde SOLO JSON válido:
{"respuesta": "...", "accion": null, "accion_data": {}}
Ejemplo "quiero comprar Netflix":
{"respuesta": "¡Claro! Tenemos Netflix individual y compartido. Te muestro las opciones 👇", "accion": "servicios.listar", "accion_data": {"servicio": "Netflix"}}
Ejemplo "recargar 50 mil":
{"respuesta": "Perfecto, voy a iniciar una recarga de \$50.000 para ti 💰", "accion": "recarga.iniciar", "accion_data": {"monto": 50000}}
Ejemplo "¿cuánto vale Spotify?":
{"respuesta": "Spotify vale \$X por 30 días. ¿Quieres verlo?", "accion": "servicios.listar", "accion_data": {"servicio": "Spotify"}}
Si no hay acción clara, "accion": null y solo responde la pregunta.
Ejemplos:
"quiero comprar Netflix" {"respuesta": "¡Claro! Te muestro los planes de Netflix 👇", "accion": "servicios.listar", "accion_data": {"servicio": "Netflix"}}
"no inicia sesión Netflix" {"respuesta": "Te paso tus datos de acceso de Netflix ahora mismo 🔑", "accion": "credenciales.listar", "accion_data": {"servicio": "Netflix"}}
"recargar 50 mil" {"respuesta": "Listo, iniciando recarga de \$50.000 💰", "accion": "recarga.iniciar", "accion_data": {"monto": 50000}}
"¿cuánto vale Spotify?" {"respuesta": "Te muestro los planes de Spotify con precios 👇", "accion": "servicios.listar", "accion_data": {"servicio": "Spotify"}}
PROMPT;
}
+1 -1
View File
@@ -1285,7 +1285,7 @@ class TelegramBotService
$patrones = [
'recarga.iniciar' => '/\b(recargar?|recarg[ao]|cargar\s+saldo|poner\s+plata|depositar|agregar\s+plata|meter\s+plata)\b/i',
'promo.listar' => '/\b(promo|oferta|combo|descuento)\b/i',
'credenciales.listar' => '/\b(credencial|contrase[ñn]a)\b|no\s+puedo\s+entrar|mis\s+datos\s+de\s+\w/i',
'credenciales.listar' => '/\b(credencial|contrase[ñn]a)\b|no\s+(puedo|pude)\s+entrar|no\s+(inicia|está\s+iniciando|abre|entra|carga|funciona|sirve|jala)\s+(sesi[oó]n|netflix|spotify|disney|hbo|max|prime|crunchyroll|la\s+cuenta|el\s+servicio|el\s+acceso)|error\s+de\s+(acceso|inicio|sesi[oó]n)|mis\s+datos\s+de/i',
'historial.ver' => '/\b(historial|mis\s+compras?|mis\s+pedidos?)\b/i',
'perfil.ver' => '/\bmi\s+perfil\b/i',
];