- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Cambios en backend y frontend Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
216 lines
4.8 KiB
Markdown
216 lines
4.8 KiB
Markdown
# MCH-013: Chat LLM Cliente
|
|
|
|
## Metadata
|
|
- **Codigo:** MCH-013
|
|
- **Fase:** 3 - Asistente IA
|
|
- **Prioridad:** P1
|
|
- **Estado:** Pendiente
|
|
- **Fecha estimada:** Sprint 8-9
|
|
|
|
## Descripcion
|
|
|
|
Asistente IA para clientes del negocio via WhatsApp: consulta de precios, disponibilidad de productos, hacer pedidos, consultar saldo de fiado, y recibir promociones.
|
|
|
|
## Objetivos
|
|
|
|
1. Consulta de precios y disponibilidad
|
|
2. Hacer pedidos via chat
|
|
3. Consultar saldo de fiado
|
|
4. Recibir catalogo de productos
|
|
5. Atender preguntas frecuentes
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
- "¿Tienen Coca de 2 litros?"
|
|
- "¿Cuanto cuesta el pan Bimbo?"
|
|
- "Quiero pedir 2 Cocas y unas Sabritas"
|
|
- "¿Cuanto debo?"
|
|
- "¿A que hora cierran?"
|
|
- Catalogo de productos (imagen)
|
|
|
|
### Excluido
|
|
- Pagos en linea (fase posterior)
|
|
- Tracking de entrega en tiempo real
|
|
- Cambios/devoluciones via chat
|
|
|
|
## Casos de Uso
|
|
|
|
### Consulta de Precio
|
|
```
|
|
Cliente: "¿Cuanto cuesta la Coca?"
|
|
Bot: "Tenemos Coca-Cola en varios tamaños:
|
|
- 355ml (lata): $15
|
|
- 600ml: $18
|
|
- 2L: $35
|
|
- 3L: $48
|
|
¿Cual te gustaria?"
|
|
```
|
|
|
|
### Consulta de Disponibilidad
|
|
```
|
|
Cliente: "¿Tienen pan Bimbo?"
|
|
Bot: "Si, tenemos:
|
|
✓ Pan Blanco Grande - $48
|
|
✓ Pan Integral - $52
|
|
✗ Pan Tostado - Agotado
|
|
¿Quieres agregar alguno a tu pedido?"
|
|
```
|
|
|
|
### Hacer Pedido
|
|
```
|
|
Cliente: "Quiero 2 Cocas de 600 y unas Sabritas"
|
|
Bot: "Tu pedido:
|
|
- 2x Coca-Cola 600ml = $36
|
|
- 1x Sabritas Original = $18
|
|
|
|
Total: $54
|
|
|
|
¿Lo confirmas?
|
|
[Confirmar] [Agregar mas] [Cancelar]"
|
|
|
|
Cliente: [Confirmar]
|
|
Bot: "¡Pedido confirmado! 🎉
|
|
Numero: #123
|
|
Estara listo en 10 minutos.
|
|
Te avisamos cuando puedas pasar."
|
|
```
|
|
|
|
### Consulta de Fiado
|
|
```
|
|
Cliente: "¿Cuanto debo?"
|
|
Bot: "Hola Juan, tu saldo actual es de $180.
|
|
Ultimo movimiento: $45 el 5 de enero.
|
|
Puedes pasar a abonar cuando gustes."
|
|
```
|
|
|
|
### Horarios y Ubicacion
|
|
```
|
|
Cliente: "¿A que hora abren?"
|
|
Bot: "Tiendita Don Jose 🏪
|
|
📍 Calle Principal #123
|
|
|
|
Horario:
|
|
Lun-Sab: 7am - 10pm
|
|
Dom: 8am - 8pm
|
|
|
|
¿Te puedo ayudar en algo mas?"
|
|
```
|
|
|
|
## Flujo Tecnico
|
|
|
|
```
|
|
1. Cliente envia mensaje a numero del negocio
|
|
2. WhatsApp Service recibe
|
|
3. Identifica como cliente (no dueno)
|
|
4. Envia a MCP Server con contexto:
|
|
- tenant_id
|
|
- customer_phone
|
|
- customer_id (si existe)
|
|
- tools: limitados para cliente
|
|
5. MCP procesa con LLM
|
|
6. Ejecuta tools (consultas/pedido)
|
|
7. Genera respuesta amigable
|
|
8. Envia respuesta al cliente
|
|
```
|
|
|
|
## Tools Limitados para Cliente
|
|
|
|
```typescript
|
|
// Tools habilitados para clientes
|
|
const customerTools = [
|
|
'search_products',
|
|
'get_product_price',
|
|
'check_availability',
|
|
'create_order',
|
|
'get_my_balance',
|
|
'get_business_info',
|
|
'get_promotions'
|
|
];
|
|
|
|
// Tools NO disponibles para clientes
|
|
// - update_product_price
|
|
// - get_sales_report
|
|
// - send_payment_reminder
|
|
// - etc.
|
|
```
|
|
|
|
## Intents del Cliente
|
|
|
|
| Intent | Ejemplo | Accion |
|
|
|--------|---------|--------|
|
|
| CONSULTA_PRECIO | "Cuanto cuesta..." | search_products |
|
|
| CONSULTA_DISPONIBILIDAD | "Tienen..." | check_availability |
|
|
| HACER_PEDIDO | "Quiero pedir..." | create_order |
|
|
| CONSULTA_SALDO | "Cuanto debo" | get_my_balance |
|
|
| HORARIOS | "A que hora..." | get_business_info |
|
|
| UBICACION | "Donde estan" | get_business_info |
|
|
| PROMOCIONES | "Que ofertas tienen" | get_promotions |
|
|
|
|
## Modelo de Datos
|
|
|
|
### Asociacion Cliente-Telefono
|
|
|
|
```typescript
|
|
// Al recibir mensaje de numero nuevo
|
|
1. Buscar en customers por phone
|
|
2. Si existe: asociar conversacion
|
|
3. Si no existe: crear customer temporal
|
|
4. Si hace pedido: pedir nombre
|
|
```
|
|
|
|
## Limites y Seguridad
|
|
|
|
- Clientes NO pueden ver info de otros clientes
|
|
- Clientes NO pueden modificar precios
|
|
- Clientes NO pueden ver reportes
|
|
- Rate limit: 20 mensajes/hora por cliente
|
|
- Tokens: descontados de cuota del tenant
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Estado | Archivo |
|
|
|------------|--------|---------|
|
|
| Customer chat flow | Pendiente | `whatsapp-service/flows/customer.flow.ts` |
|
|
| MCP tools (limited) | Pendiente | `mcp-server/tools/customer/` |
|
|
| Order creation | Pendiente | `backend/modules/orders/` |
|
|
| FAQ responses | Pendiente | `whatsapp-service/faq/` |
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
- MCH-010 (MCP Server)
|
|
- MCH-011 (WhatsApp Service)
|
|
- MCH-014 (Gestion Clientes)
|
|
|
|
### Bloquea a
|
|
- MCH-015 (Pedidos via WhatsApp)
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
- [ ] Consultas de precio funcionan
|
|
- [ ] Consultas de disponibilidad funcionan
|
|
- [ ] Pedidos se crean correctamente
|
|
- [ ] Saldo de fiado se muestra
|
|
- [ ] Info del negocio se muestra
|
|
- [ ] No hay fuga de informacion
|
|
|
|
## Personalizacion por Tenant
|
|
|
|
```typescript
|
|
// tenant_settings
|
|
{
|
|
whatsapp_bot: {
|
|
greeting: "¡Hola! Bienvenido a {{business_name}}",
|
|
farewell: "¡Gracias por tu preferencia!",
|
|
tone: "friendly", // formal, friendly, casual
|
|
auto_suggest_products: true,
|
|
show_promotions: true
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2026-01-07
|