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:
co-authored by
Claude Sonnet 4.6
parent
a134ad54a6
commit
b7572a0fb9
@@ -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. Sé 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user