Comprensión: cómo funciona
Comprensión lee el mensaje que escribe un cliente en un chat de ventas y te dice qué pide, en comandos que tu programa entiende: un precio, agregar dos unidades de un producto, cotizar el envío a una ciudad, pagar, hablar con una persona.
Sirve si llevas tu propio bot o tu propio carrito: tú pones la conversación y el catálogo, Comprensión interpreta cada mensaje, y tu código decide qué hacer. No contesta al cliente, no toca carritos ni pedidos y no guarda nada. Está hecho para chats de venta en español.
En la consola, el módulo aparece en el Estudio del espacio, sin nada que configurar: todo va en cada llamada.
Antes de empezar
- El espacio tiene que tener el módulo Comprensión:
comprensionsale en sus módulos enGET /api/companies. Si no, cada ruta responde 403módulo no habilitado para este espacio. - Vale cualquier clave, también una de solo lectura: interpretar no cambia nada del espacio.
- Las rutas cuelgan de
/api/mod/comprension/{espacio}/, con la misma clave y los mismos límites que el resto de la API. - Cada mensaje interpretado gasta créditos de la bolsa de tu cuenta. Con la bolsa agotada, 402 (
bolsa_agotada). Lo gastado, en consumo.
Un mensaje, paso a paso
- Llega un mensaje de tu cliente. Busca en tu catálogo los productos que puede estar nombrando (hasta 12) y prepara lo que sabes: su carrito, la última pregunta que le hiciste.
- Manda el mensaje y ese contexto a comandos.
- Recorre los
comandosen orden y ejecútalos tú: añade al carrito, da el precio, cotiza el envío, pasa la conversación a una persona. - Si viene
clarify, pregúntale cuál de lasopcionesquiere y guarda la pregunta: en el mensaje siguiente mándala comopregunta_pendiente.
{
"mensaje": "ponme el grande y quita el molido",
"contexto": {
"carrito": "1 × Café Huila molido 250 g",
"candidatos": [
{ "id": "huila-500", "nombre": "Café Huila en grano 500 g" },
{ "id": "huila-250", "nombre": "Café Huila en grano 250 g" },
{ "id": "huila-molido-250", "nombre": "Café Huila molido 250 g" }
]
}
}Qué mandar en contexto
- candidatos es lo que más ayuda: con ellos, cada comando trae
producto_idcon uno de tus ids, o?si no es ninguno. Nunca un id que no mandaste. - Si dos candidatos se llaman casi igual (dos tamaños, dos líneas) y el mensaje no dice cuál, no apuesta: devuelve
clarifycon los dos. - carrito, en texto, para que «quita uno» o «el doble» sepan sobre qué actuar.
- pregunta_pendiente, para que un «sí» o «el segundo» se entienda como respuesta.
- dialogo o resumen, para entender «ese» o «el anterior». No hace falta mandar la conversación entera.
Los comandos
Hasta cuatro por mensaje, uno por cada cosa que pide, en el orden en que la pide. Cada uno trae su tipo y solo los campos que le aplican.
| GRUPO | TIPOS |
|---|---|
| Productos | precio, stock, comparar, responder_docs, ver_catalogo |
| Carrito | agregar, quitar, reemplazar, cambiar_cantidad, vaciar_carrito, ver_carrito |
| Pedido | cotizar_envio, desglose, objecion_precio, cerrar_pedido, metodo_pago, estado_pago, datos_despacho, cancelar |
| Conversación | responder_pendiente, clarify, saludo, despedida, pedir_humano, otro |
- Las cantidades van en uno de dos campos:
cantidad_totales la cantidad final («ponme dos»);cantidad_extra, lo que suma a lo que lleva («dos más»). Sin ninguno, no dijo cantidad: decide tú. - Si señala sin nombrar («uno más de ese»), viene
referente:carrito,focooultimo_anotado. Lo resuelves tú con tu estado. - Las preguntas de «¿cuánto sería si llevo tres?» son
precioconcantidad_total: no cambies el carrito. - Cada tipo y cada campo, en la ficha de comandos.
Si no se puede interpretar
Comprensión no rompe tu conversación: si algo falla por dentro, responde 200 con comandos vacío y un texto en error. Sigue con tu lógica de respaldo (por ejemplo, contestar que no entendiste o pasar a una persona). Lo mismo si llega vacío sin error: el mensaje no pedía nada que encaje.