feat(whatsapp): QWEN primary AI backend, Hermes fallback, conversation history, vehicle persistence, demo prompts
- Add QWEN (qwen3.6) as primary AI backend with short system prompt - Hermes remains as fallback with 45s timeout - Increase QWEN timeout to 35s, max_tokens to 4000 - Add conversation history loading from whatsapp_messages (last 4 msgs) - Persist detected vehicle in whatsapp_sessions table - Add 'limpiar chat' / 'nuevo chat' / 'reset' commands to clear history - Fix CSS conflict: rename whatsapp chat-panel classes to wa-chat-panel - Fix JS ID conflicts with chat.js widget (waChatPanel, waChatMessages, etc.) - Improve no-stock response: conversational with alternatives - Split search_query by | for multi-part lookups - Add DEMO_PROMPTS.md and DEMO_PROMPTS_V2.md
This commit is contained in:
198
DEMO_PROMPTS_V2.md
Normal file
198
DEMO_PROMPTS_V2.md
Normal file
@@ -0,0 +1,198 @@
|
||||
# 🧪 10 Prompts de Demo — Funcionalidades del Agente WhatsApp
|
||||
|
||||
> Usa estos prompts en orden o saltando entre ellos para mostrar la versatilidad del agente.
|
||||
|
||||
---
|
||||
|
||||
## 1. Búsqueda directa con vehículo clásico mexicano
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Necesito bujías para un Nissan Tsuru 2015
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Detección precisa de vehículo mexicano clásico (Tsuru)
|
||||
- Traducción automática a inglés: `Spark Plug`
|
||||
- Búsqueda en inventario local con compatibilidad de vehículo
|
||||
|
||||
**Respuesta esperada:** Tabla de bujías NGK/Bosch con stock y precios.
|
||||
|
||||
---
|
||||
|
||||
## 2. Diagnóstico por síntoma — suspensión
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Mi carro se jala hacia la izquierda al frenar, qué puede ser?
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Capacidad de diagnóstico sin mencionar una parte específica
|
||||
- Relaciona síntoma con partes probables: terminales, rotulas, balatas del lado izquierdo
|
||||
- Genera `search_query`: `Tie Rod End`
|
||||
|
||||
**Respuesta esperada:** Diagnóstico + lista de partes probables ordenadas por probabilidad.
|
||||
|
||||
---
|
||||
|
||||
## 3. Cotización de kit completo — embrague
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Cuánto cuesta cambiar el clutch de un Pointer 2010?
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Detecta "Pointer" como modelo mexicano
|
||||
- Interpreta "cambiar el clutch" como kit completo (embrague + plato + collarín)
|
||||
- Genera múltiples `search_query` separados por `|`: `Clutch Kit|Clutch Plate|Release Bearing`
|
||||
|
||||
**Respuesta esperada:** Lista de componentes del kit de embrague con precios.
|
||||
|
||||
---
|
||||
|
||||
## 4. Mantenimiento preventivo — servicio de 50,000 km
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Quiero el servicio de 50 mil kilómetros para mi Jetta 2019
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Entiende "servicio de 50,000 km" como paquete de mantenimiento
|
||||
- Genera lista completa: aceite, filtros, bujías, refrigerante, frenos
|
||||
- `search_query`: `Oil Filter|Air Filter|Spark Plug|Coolant|Brake Pad`
|
||||
|
||||
**Respuesta esperada:** Paquete de servicio con todas las partes necesarias.
|
||||
|
||||
---
|
||||
|
||||
## 5. Parte sin especificar vehículo (prueba de persistencia)
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Y el filtro de aceite cuánto cuesta?
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- **Contexto persistente:** recuerda que se habló del Jetta 2019 (prompt 4)
|
||||
- No pide "¿para qué carro?" de nuevo
|
||||
- Usa el vehículo guardado en sesión automáticamente
|
||||
|
||||
**Respuesta esperada:** Precio del filtro de aceite compatible con Jetta 2019.
|
||||
|
||||
---
|
||||
|
||||
## 6. Falla eléctrica — no arranca
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Mi camioneta no quiere arrancar en las mañanas, qué le puede faltar?
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Diagnóstico eléctrico sin mencionar parte específica
|
||||
- Sugiere: batería, motor de arranque, alternador, cables de bujías
|
||||
- `search_query`: `Starter Motor` (la parte más probable)
|
||||
|
||||
**Respuesta esperada:** Diagnóstico con 3-4 partes posibles + la más probable primero.
|
||||
|
||||
---
|
||||
|
||||
## 7. Combo de frenos completos
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Cotízame frenos completos delanteros para un Aveo 2017
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Interpreta "frenos completos delanteros" como combo: balatas + discos + líquido
|
||||
- Genera `search_query`: `Brake Pad|Brake Disc|Brake Fluid`
|
||||
- Ofrece cotización de múltiples ítems de una sola vez
|
||||
|
||||
**Respuesta esperada:** Tabla con balatas, discos y líquido de frenos compatibles.
|
||||
|
||||
---
|
||||
|
||||
## 8. Parte para vehículo europeo (sin stock local)
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Busco un radiador para Audi A4 2021
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Detección de vehículo europeo con formato correcto
|
||||
- Cuando no hay stock, responde de forma conversacional (NO un mensaje seco)
|
||||
- Ofrece alternativas: pedido por encargo, equivalentes, o tiendas cercanas
|
||||
|
||||
**Respuesta esperada:**
|
||||
> "No encontré ese radiador en stock para tu Audi A4 2021, pero puedo:
|
||||
> • Pedirlo por encargo con 3-5 días de entrega
|
||||
> • Buscar un equivalente de otra marca
|
||||
> ¿Qué prefieres?"
|
||||
|
||||
---
|
||||
|
||||
## 9. Agregar segunda parte a cotización abierta
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
También agrega un filtro de aire
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Flujo conversacional de cotización multi-paso
|
||||
- Agrega ítem adicional a la cotización ya abierta
|
||||
- Actualiza conteo de productos y total parcial
|
||||
|
||||
**Respuesta esperada:**
|
||||
> "✅ *Filtro de aire* × 1 agregado. Llevas 4 productos — total parcial: $1,240.50"
|
||||
|
||||
---
|
||||
|
||||
## 10. Confirmar pedido y cerrar venta
|
||||
|
||||
**Prompt:**
|
||||
```
|
||||
Sí, todo bien, confirmo el pedido
|
||||
```
|
||||
|
||||
**¿Qué demuestra?**
|
||||
- Detecta intención de confirmación ("sí", "confirmo", "todo bien")
|
||||
- Cierra la cotización como pedido confirmado
|
||||
- Genera número de pedido y mensaje de cierre profesional
|
||||
|
||||
**Respuesta esperada:**
|
||||
> "✅ *Pedido confirmado!*
|
||||
> Tu cotización #42 fue registrada.
|
||||
> Nos pondremos en contacto contigo para coordinar la entrega.
|
||||
> ¡Gracias por tu compra! 🙏"
|
||||
|
||||
---
|
||||
|
||||
## 🎬 Sugerencia de guión para la demo (8-10 minutos)
|
||||
|
||||
| Minuto | Prompt | Efecto demo |
|
||||
|--------|--------|-------------|
|
||||
| 0:00 | Prompt 1 (Tsuru bujías) | Saludo rápido, resultados en 2s |
|
||||
| 0:45 | Prompt 2 (se jala al frenar) | Diagnóstico inteligente |
|
||||
| 1:45 | Prompt 4 (servicio Jetta) | Paquete completo de mantenimiento |
|
||||
| 3:00 | Prompt 5 (filtro de aceite) | "¿Recuerdas el carro?" — contexto persistente |
|
||||
| 3:45 | Prompt 7 (frenos Aveo) | Cotización múltiple con tabla |
|
||||
| 4:45 | Prompt 9 (agregar filtro de aire) | Cotización conversacional |
|
||||
| 5:30 | Prompt 10 (confirmo pedido) | Cierre de venta |
|
||||
| 6:00 | Prompt 8 (Audi sin stock) | Manejo elegante de "no tengo" |
|
||||
| 6:45 | Prompt 3 (Pointer clutch) | Kit completo con precios |
|
||||
| 7:30 | Prompt 6 (no arranca) | Diagnóstico final |
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Plan de contingencia
|
||||
|
||||
Si en algún momento QWEN tarda más de 30 segundos:
|
||||
1. Decir: *"Voy a reenviar el mensaje, a veces el asistente necesita un segundo intento"*
|
||||
2. Reenviar el mismo prompt
|
||||
3. Si sigue lento, usar `limpiar chat` y empezar ese flujo de nuevo
|
||||
Reference in New Issue
Block a user