Construir un asistente conversacional puede parecer complejo, pero con Watson Assistant de IBM el proceso se divide en tres componentes claros que permiten entrenar un bot funcional paso a paso. Aquí se explica cómo configurar cada uno de estos componentes para crear un chatbot de viajes capaz de cotizar tours, hacer reservaciones y más.
¿Cuáles son los tres componentes principales de Watson Assistant?
Watson Assistant se estructura alrededor de tres pilares fundamentales: intención, entidad y diálogo [0:13]. Comprender cada uno es esencial para que el bot pueda interpretar y responder correctamente a los usuarios.
La intención (intent) representa lo que el usuario quiere lograr al interactuar con el bot. En un asistente de viajes, por ejemplo, las intenciones podrían ser: quiero hacer una reservación, quiero cancelar una reservación o quiero cotizar un tour [0:25].
La entidad funciona como el sustantivo o la variable específica dentro de una intención. Si la intención es "reservar", las entidades serían aquello que se quiere reservar: un viaje, un hotel, un restaurante o un avión [0:43]. Las entidades aportan la información concreta que el bot necesita para procesar la solicitud.
El diálogo es el componente donde se entrena todo el flujo conversacional. Funciona de manera secuencial, como una condicional enorme que va evaluando de arriba hacia abajo si encuentra una intención, una entidad o una combinación de ambas para determinar qué responder [1:07].
¿Cómo se crean intenciones y entidades en la práctica?
Para comenzar, se accede al catálogo de IBM Cloud, se busca Watson Assistant en la sección de inteligencia artificial y se selecciona la capa light en la región de Dallas [1:30]. Una vez creado el servicio, se lanza la herramienta y se crea un Dialog Skill seleccionando el idioma español [2:08].
¿Cómo entrenar intenciones con ejemplos de usuario?
Al crear una intención como "hacer reservación", se deben proporcionar mínimo diez ejemplos de cómo un usuario expresaría esa solicitud [4:01]. Esto incluye variaciones naturales del lenguaje:
- "Quiero una reservación."
- "Hazme una reservación."
- "Me interesa una reservación."
- "Quisiera hacer una reservación."
Watson Assistant tiene la capacidad de comprender errores de escritura y expresiones coloquiales (slang), lo cual es importante cuando el asistente atiende usuarios de diferentes regiones [3:35]. Se repite el mismo proceso para intenciones como cancelar reservación, cotizar tours e incluso traducir texto [5:20].
¿Qué son las entidades de sistema y cómo se configuran?
Además de las entidades personalizadas, Watson Assistant ofrece entidades de sistema preconstruidas como número, fecha, tiempo, moneda y porcentaje [6:20]. Estas evitan tener que entrenar manualmente valores infinitos. Por ejemplo, la entidad fecha puede interpretar expresiones como "el próximo viernes" o "mañana".
Para la intención cotizar, se crea la entidad "tour" con valores como Chichén Itzá, cenotes y Xcaret, cada uno con sus respectivos sinónimos [7:00]. Watson también puede sugerir sinónimos automáticamente.
¿Cómo funciona el diálogo con slots y respuestas múltiples?
El diálogo se construye añadiendo nodos que actúan como condicionales. Para el nodo "cotizar", se activan dos funcionalidades clave desde el botón customize: slots y respuestas múltiples [8:40].
Los slots permiten definir variables obligatorias que el bot debe obtener antes de responder. En el caso de una cotización de tours, se necesitan forzosamente dos datos:
- Entidad tour: a qué destino quiere ir el usuario.
- Entidad número: cuántos tours desea.
Si el usuario dice "quiero un tour" sin especificar destino, el bot preguntará "¿tour a dónde?" [9:25]. Si dice "quiero tour a Chichén Itzá" sin indicar cantidad, preguntará "¿cuántos tours quieres?".
Las respuestas múltiples permiten manejar cada combinación de entidad con una respuesta personalizada. Por ejemplo, cuando el tour es Xcaret se responde con un precio, y cuando es cenotes con otro [10:30]. Además de texto, las respuestas pueden incluir opciones, pausas e imágenes, para lo cual solo se necesita la URL de la imagen con menos de 512 caracteres [11:20].
Al probar el bot con "quiero un tour a Xcaret", este responde correctamente con el precio configurado [11:50]. Las variables de contexto permiten reutilizar los datos capturados en nodos diferentes, funcionando como variables globales dentro del flujo conversacional [10:55].
¿Ya tienes una idea de qué tipo de asistente construirías con estos componentes? Comparte tu caso de uso en los comentarios.