El flujo de las conversaciones es una parte esencial en el diseño de los chatbots, es por ello que, en este artículo, veremos los conceptos más relevantes y cuáles son las estrategias utilizadas para definir conversaciones que permitan a nuestros chatbots interactuar con los usuarios.

Conversaciones

Cuando hablamos con una persona, podemos pensar que la conversación que estamos teniendo, es una secuencia de frases u oraciones.

En el contexto de los chatbots, podemos utilizar la misma idea. Una conversación será una secuencia donde cada paso puede ser el mensaje del usuario, la respuesta del chatbot o una acción realizada por éste último. Es decir, las conversaciones entre chatbots y usuarios se definen como una serie de pasos donde cada uno de estos realiza alguna acción.

Habitualmente, la única acción que puede realizar el usuario es enviar mensajes. Estos mensajes tienen un objetivo, al que llamamos intención del mensaje, y puede contener información relevante, a la que llamamos entidades.

Por su parte, los chatbots pueden enviar a los usuarios mensajes en formar de textos, menús de botones, imágenes, etc., y corresponden a las respuestas del chatbot. Sin embargo, existen otro tipo de pasos realizados por el chatbot que no son visibles al usuario y que llamamos acciones. En este tipo de pasos, el chatbot puede insertar o extraer información de bases de datos, ejecutar alguna aplicación, comunicarse con otro servicio, etc.

Antes de continuar, sería bueno aclarar que llamamos respuestas a todos los mensajes enviados por el chatbot, incluso si éstos son, en realidad, una pregunta al usuario.

Un ejemplo para fijar ideas

A modo de ejemplo, consideremos el caso donde el usuario quiere conocer la fecha límite de pago del Impuesto de Bienes Inmuebles.

El mensaje del usuario podría ser «hasta cuándo puedo pagar el ibi?». La intención del mensaje es «consultar calendario de impuestos» y podemos encontrar la entidad «impuesto», que toma el valor «ibi».

Con la intención y la entidad detectadas, el chatbot realiza una consulta en la base de datos y devuelve la información encontrada al usuario con una respuesta.

En la siguiente figura, podemos ver la secuencia de pasos (izquierda) y su correspondiente diálogo entre el usuario y el chatbot (derecha):

Como podemos ver, la conversación se representa como una secuencia de pasos. En particular, la acción realizada por el chatbot, que corresponde a la búsqueda en la base de datos, no es visible para el usuario. En este ejemplo, el chatbot ha realizado una única acción, sin embargo, podría realizar más acciones antes de darle una respuesta al usuario.

Controlando el flujo de las conversaciones con chatbots

Como ocurre con las conversaciones entre personas, las conversaciones con los chatbots pueden tomar muchos caminos. Por esta razón, es importante que el chatbot sea capaz de reaccionar a cualquier mensaje que el usuario le envíe.

Para poder controlar el flujo de las conversaciones, los chatbots disponen de reglas, historias y estrategias. Con estas herramientas, por un lado le estamos mostrando al chatbot cómo puede evolucionar una conversación y por otro, enseñando cómo debe responder en cada caso. De esta forma, el chatbot sabrá cómo atender las consultas de los usuarios y podrá guiarlos para que obtengan la información que están buscando.

Como vimos en los artículos anteriores sobre intenciones y entidades, los chatbots se basan en aprendizaje automático (Inteligencia Artificial) para interpretar mensajes y mantener conversaciones. Por ello, desde una perspectiva más técnica, las reglas, historias y estrategias, corresponden a los datos de entrenamiento de nuestro chatbot.

La ventaja de este enfoque es que, durante la conversación, el chatbot puede generalizar lo aprendido en el entrenamiento. Esto no sólo le da gran flexibilidad durante las conversaciones, sino que facilita enormemente su diseño y desarrollo.

Reglas

Las reglas son fragmentos muy cortos de una conversación que deben seguir siempre el mismo camino. Con las reglas, nos aseguramos que el chatbot responda siempre de la misma forma a una dada intención del usuario.

Por ejemplo, si la intención del usuario es saludar, podemos hacer una regla que el chatbot responda con un saludo a esa intención. En consecuencia, sin importar el momento de la conversación donde el usuario salude, nuestro chatbot responderá a ese saludo.

Debemos tener en cuenta que las reglas le quitan flexibilidad al chatbot, por lo que debemos usarlas con cuidado.

Historias

Las historias son representaciones de un diálogo entre el usuario y el chatbot. Nos sirven para enseñarle al chatbot cómo puede evolucionar una conversación, son la parte más importante del entrenamiento del chatbot ya que le permitirán generalizar las conversaciones. Es decir, las historias son las que aportan flexibilidad al chatbot durante la conversación.

Las historias son más complejas que las reglas y pueden tener varios intercambios entre el usuario y el chatbot. En la siguiente figura mostramos el esquema de una posible historia:

En la secuencia, hemos indicado con color azul las intervenciones del usuario y en anaranjado, las del chatbot. Debemos notar que los pasos donde se ha detectado la entidad y se realizó la búsqueda en la base de datos, no son visibles para el usuario y, sólo para destacarlo, lo hemos representado bajando la intensidad del color.

Como podemos ver, las historias contienen varios intercambios entre el usuario y el chatbot y son un ejemplo de lo que puede ocurrir en una conversación real. Podemos hacer tantas historias como queramos y cuanto más diversas sean, el chatbot aprenderá mejor a controlar el flujo de las conversaciones.

Estrategias

Las estrategias son los mecanismos que utiliza nuestro chatbot para decidir qué acción tomar en cada paso. Existen dos tipos de estrategias, las basadas en reglas y las basadas en aprendizaje automático. Las primeras se basan en las reglas que hemos definido, en cambio, las segundas, en las historias.

Durante una conversación, nuestro chatbot primero detecta la intención del mensaje enviado por el usuario y luego, deberá decidir qué hacer. Para ello, tendrá que tener en cuenta, entre otras cosas, el contexto en el cual fue utilizada la intención. Las estrategias son las encargadas de analizar el contexto y ayudar al chatbot a tomar la decisión.

Por ejemplo, si la intención detectada ha sido utilizada en una regla, la estrategia será seguir esa regla. En caso contrario, el chatbot recordará lo aprendido en las historias para realizar su próxima acción.

Resumen

En este artículo hemos visto que podemos interpretar las conversaciones entre usuarios y chatbots como secuencias de pasos. Cada uno de estos pasos pueden ser mensajes de los usuarios, o respuestas o acciones del chatbot.

Para controlar el flujo de la conversación el chatbot utilizará las reglas e historias con las que ha sido entrenado. Durante la conversación utilizará estrategias, basadas en las reglas e historias, con las cuales decidirá cuál será su próxima acción.

 

Foto de Miguel Á. Padriñán: https://www.pexels.com/es-es/foto/dos-globos-de-mensaje-blancos-1111368/