Índice:
- Visión general
- Usando IA en las condiciones de salida del Builder
- Cascada de validación
- Chatbot basado en IA
- Chatbot híbrido
- Usando el asistente de contenido
Visión general
Primero, asegúrese de que su modelo de inteligencia artificial (IA) esté debidamente configurado y publicado y que se hayan cumplido los siguientes pasos:
- Haber configurado y conectado un proveedor de NLP (IBM Watson, Microsoft LUIS y Google Dialogflow).
- Haber creado al menos una intención con algunos ejemplos de texto;
- Haber entrenado y publicado el modelo en el respectivo proveedor.
A partir de ahí, es posible comenzar a hacer llamadas a la inteligencia artificial a través de su chatbot, usando IA en las condiciones de salida del Builder. Es posible crear tres tipos principales de chatbot con inteligencia artificial:
- Un chatbot basado en IA, en el que cada mensaje del usuario es enviado al proveedor de NLP, que identifica las intenciones y entidades y, luego, redirige el flujo;
- Un chatbot híbrido, que tiene uno o más flujos principales y, si el usuario sale de él, se usa la IA para traerlo de vuelta al flujo;
- Un chatbot que usa el asistente de contenido; en este caso, el asistente responde al usuario con contenidos preparados, de acuerdo con lo que el usuario dijo, ideal para funcionar como FAQ.
Usando IA en las condiciones de salida del Builder
Para integrar la IA en el flujo del chatbot, vamos a usar las condiciones de salida presentes en los bloques del Builder. Vamos a configurar la fuente de datos como “Intención identificada” o “Entidad identificada” y la condición como “Igual a” para hacer la integración con su modelo de IA y, luego, tomar una decisión a partir de eso. Una práctica recomendada en este tutorial es capturar los mensajes que caen en el bloque de excepción y luego procesarlos usando el recurso de IA.
Un cuidado a tener en cuenta al momento de crear la lista de condiciones de salida es dejar las más específicas por encima de las más genéricas. Esto debe hacerse por una cuestión de orden (precedencia en la verificación), a fin de evitar que algunas condiciones específicas nunca sean verificadas.
Ver el ejemplo a continuación:
Hay dos condiciones que verifican la existencia de la intención “Generar segunda vía”; sin embargo, la segunda condición también necesita la existencia de la entidad “boleto” para ser atendida.
En este escenario, si la condición que verifica la intención viene antes que la condición que verifica la entidad, ¿qué sucede? Note que, si la intención “Generar segunda vía” es identificada, independientemente de si existe la entidad “boleto” o no, se satisfará la primera condición. ¡Con esto, la segunda condición ni siquiera será verificada! Sin embargo, si la condición que verifica la entidad viene primero y existe la intención “Generar segunda vía” en la frase del usuario, tenemos dos escenarios posibles. Si la entidad es identificada, se satisfará esta condición. Si la entidad no es identificada, se verificará la próxima condición, y se satisfará correctamente.
Cascada de validación
Una buena práctica para el uso y buen funcionamiento de la IA en el chatbot es hacer una pre-validación al someter el mensaje del usuario al proveedor de NLP. Recuerde que el mensaje puede ser una imagen, video o audio, y no contener un texto a ser procesado. Además, puede ser que el mensaje sea demasiado corto (con una sola palabra), demasiado largo (como un texto copiado y pegado varias veces) o que sea un simple saludo o despedida. Estos son algunos ejemplos comunes de mensajes que el chatbot puede recibir y caer en el bloque de excepción. Estos mensajes no necesitan ser enviados al proveedor, pudiendo ser previamente descartados con una pre-validación, que, en general, se conoce como “cascada de validación”.
Primeramente, vamos a añadir algunas condiciones para validar el texto de entrada del usuario. El objetivo de esta acción es verificar si este es un texto común, antes de enviarlo para que la inteligencia artificial lo procese. Si este no es un texto común, vamos a dirigir la salida al bloque de error estándar.
Haga clic en el bloque de Excepción y luego acceda a la pestaña de "condiciones de salida". Haga clic en el botón "Agregar condición de salida" y se creará una nueva condición al final de la lista de condiciones. En este caso, compararemos si la variable del Builder que almacena el tipo de contenido enviado es imagen, video o audio, y luego dirigiremos al bloque de Error estándar.
Chatbot basado en IA
En esta sección, mostraremos cómo crear un chatbot usando la inteligencia artificial como recurso principal.
El primer paso es añadir una cascada de validación en el bloque de excepción del flujo. Esta acción sirve para filtrar algunos mensajes antes de enviarlos a la IA, priorizando su importancia, para no procesar mensajes innecesarios.
A continuación, descargue el flujo aquí e impórtelo en el builder para seguir el tutorial paso a paso. Este chatbot se llama FAQ, y se utiliza para responder preguntas con NLP (Procesamiento de Lenguaje Natural), lo que hace que la conversación sea más fluida.
El flujo comienza en el bloque "Inicio", seguido del mensaje de bienvenida, y luego pasa al bloque "Excepción", donde se manejan todas las tratativas de la inteligencia artificial. La primera imagen presenta el flujo. La segunda imagen muestra la configuración de salida usando inteligencia artificial del bloque "Excepciones", que utiliza las entidades e intenciones para acceder a cada bloque específico.
Cuando se envía un mensaje al chatbot, entra en el bloque de "Excepción", donde se analizan las informaciones. Este análisis verifica si el mensaje encaja en uno de los casos de intenciones o entidades. Si se identifica uno de estos casos, se envía al bloque correspondiente, continuando el flujo. Si no se encuentra, se enviará un mensaje de error, explicando que el mensaje no fue reconocido.
Usando inteligencia artificial, puede mejorar su chatbot. Si identifica que no es suficiente la cantidad de entidades e intenciones, podemos crear nuevas. Después de cualquiera de estos pasos, siempre debemos entrenar nuestra IA y publicar nuevamente.
Chatbot híbrido
En esta sección, mostraremos cómo podemos integrar IA en un chatbot que brinda atención para una tienda virtual. Tiene un flujo simple, con algunos menús y submenús. Si lo desea, puede descargar este flujo aquí e importarlo en el builder para seguir el tutorial paso a paso.
Sobre el flujo, en resumen, después del bloque de bienvenida hay un bloque de menú que muestra algunos temas que se pueden tratar con el chatbot. Dependiendo de la elección, la persona usuaria será redirigida a un submenú con opciones sobre ese tema específico. El problema es que, en este escenario, muchas veces puede no llegar a estos submenús y encontrar la opción que desea, o incluso enviar un mensaje inesperado. Por lo tanto, configuraremos la inteligencia artificial para procesar todos los mensajes que salgan del flujo estándar y redirigir a la persona al bloque que mejor corresponda a lo que desea.
La siguiente imagen ilustra el flujo del chatbot que vamos usar en este tutorial:
Primero, se añadirá una cascada de validación en el bloque de excepción del flujo para filtrar algunos mensajes antes de enviarlos a la IA, evaluando su importancia, con el fin de no procesar mensajes innecesarios.
Ahora, en las condiciones de salida del bloque de excepción, añadiremos condiciones que se cumplirán si ciertas intenciones y/o entidades son reconocidas en la frase del usuario. Primero, crearemos una condición para que, si se reconoce la intención "Generar segunda copia", el flujo se redirigirá al bloque "Menú de segunda copia". Así, si la persona dice algo relacionado con generar una segunda copia, y el proveedor de NLP lo identifica, se redirigirá automáticamente al bloque correspondiente, sin que el chatbot muestre un mensaje de error o diga que no entendió.
Si tienes dificultades para crear condiciones de salida que consulten intenciones y entidades de la frase del usuario, vuelve a leer la sección Usando IA en las condiciones de salida.
También es posible crear condiciones de salida más complejas, identificando entidades en la frase, además de la intención.
Por ejemplo, ahora crearemos una condición para que, si se reconoce la intención "Hacer cambio" y la entidad "forma de pago" en la frase del usuario, el flujo se redirigirá al bloque "Cambiar método de pago", como se puede ver en la siguiente imagen.
Finalmente, este proceso de crear condiciones de salida que involucren intenciones y entidades puede extenderse. Es posible crear tantas condiciones como sea necesario, haciendo que tu chatbot sea cada vez más preciso durante una conversación, permitiendo interacciones mucho más fluidas y naturales.
- Si deseas descargar el flujo final, para analizar cómo quedó después de crear las condiciones de salida, haz clic aquí.
Usando el asistente de contenido
También es posible tener respuestas preparadas para una cierta combinación de intenciones y entidades. Para ello, es necesario registrar estas combinaciones, junto con la respuesta correspondiente en el asistente de contenido, en un submenú dentro de la pestaña de IA. Para saber más sobre su funcionamiento y cómo registrar nuevas combinaciones, consulta aquí.
Después de registrar las combinaciones deseadas, configuraremos la consulta al asistente de contenido en el flujo del chatbot, en el Builder. Para ello, también utilizaremos el bloque de excepción para capturar los mensajes que salgan del flujo convencional. Serán enviados al proveedor de NLP para identificar las intenciones y entidades presentes en la frase y, entonces, devolver el contenido adecuado, si existe.
1. Primero, ingrese al Builder.
2. Haga clic en el bloque de Excepciones y luego acceda a la pestaña “Acciones”;
3. Haga clic en el botón “Agregar acción de entrada”;
4. Cree una nueva acción del tipo “Consultar asistente de contenido";
5. Se creará una nueva acción con los campos: “Variable”, “Confiabilidad de IA” y “Variable para el valor de retorno”.
6. En el campo de “Variable”, vamos a llenar con la variable que almacena el contenido del mensaje enviado por la persona usuaria “{{input.content}}”.
El campo de confiabilidad de IA no es obligatorio. Si no se completa, se usará la confiabilidad registrada en la configuración del chatbot; por lo tanto, dejaremos este campo en blanco. El campo de variable de retorno se llenará con “contentResult”, pero se puede completar con cualquier otro nombre de su elección.
7. Haga clic en la flecha “<” para guardar su configuración.
Configurar en las condiciones de salida
Ahora solo falta configurar en las condiciones de salida que, si existe una combinación identificada, debe redirigir a un bloque que mostrará el contenido de esa combinación.
1. Cree un nuevo bloque con un nombre sugestivo (ejemplo: “Respuesta del asistente de contenido”).
2. En él, agregue un globo de texto con el atributo “Value” de la variable que colocó para almacenar la respuesta del asistente de contenido. Para ello, use el operador “@”. Si colocó la variable como “contentResult”, quedará de la siguiente manera: “contentResult@Value”.
3. Finalmente, haga clic en el bloque de Excepción nuevamente, pero ahora acceda a la pestaña de “Condiciones de salida”;
4. Haga clic en el botón “agregar condición de salida” para crear una nueva condición;
5. Cree una condición en la que, si la variable que almacena la respuesta del asistente de contenido existe (ejemplo: “contentResult”), entonces vaya al bloque que muestra ese contenido (ejemplo: “Respuesta del asistente de contenido”).
Recuerde: Coloque esta nueva condición de salida por encima de las condiciones que son más genéricas que ella, para que pueda ser verificada y ejecutada correctamente.
- Para más detalles sobre esto, consulte la sección “Usando IA en las condiciones de salida del Builder”.
¡Eso es! Ahora ya tienes un chatbot que usa IA para dar respuestas automáticas si la frase dada por la persona usuaria no encaja en el flujo esperado.
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los vídeos en nuestro canal. 😃