La receta secreta de Gus Chat

Esta nota es cortesía de nuestro equipo de tecnología 😃

Antes de iniciar te recomendamos tener a la mano nuestra nota ¿Los chatbots deben saberlo todo? y nuestra guía de implementación. Te encontrarás con algunos tecnicismos, pero nada del otro mundo, nuestro equipo de tecnología ha hecho un excelente trabajo para contarte cómo funciona Gus, aunque no está de más que tengas tus acordeones a la mano.

Nuestra tecnología se puede ver como un oído que está pendiente de cualquier petición que tengan los usuarios dentro de un canal de comunicación. Cuando una persona escribe un mensaje, se activa nuestro motor de Inteligencia Artificial para dar solución a la petición. El sistema comienza con un procesamiento de lenguaje natural, donde se realiza la detección de intenciones y entidades.

Una intención es el objetivo del mensaje. Por ejemplo, cuando un usuario dice “quiero comprar boletos”, la intención principal es la de compra. En el caso de “¿Puedo viajar en avión con mi perro?”, sabemos que el usuario lo que quiere es obtener información. Con esta tecnología, somos capaces de responder de forma diferente a cosas que parecen similares pero son completamente diferentes como “cómo obtengo mi saldo?” y “obten mi saldo”. En el primero, el usuario espera información sobre la obtención de su saldo; y en el segundo, que el bot le dé su saldo.

Las entidades son en mayor parte los sustantivos, objetos directos e indirectos que se encuentran en un mensaje y complementan lo que el usuario está buscando. La combinación de intención y entidades nos permite generar diferentes respuestas a oraciones como “qué es el pin?”, “qué es el puk?”, “obten mi pin” y “obten mi puk”. Aquí nuestros extractores sacarían el pin y el puk como entidades. Cada mensaje llevaría a diferentes respuestas porque los dos informativos comparten la misma intención pero diferentes entidades. Lo mismo sucede para el modo imperativo. Nuestros extractores de entidades pueden ser dinámicos o estáticos.

La diferencia radica en que si es información que cambia con relativa rapidez en el tiempo. En el caso del pin y el puk, sabemos que es información estática. En un tiempo de 6 meses, la probabilidad de que estos dos términos cambien es muy baja, casi cero. Esta información se considera estática. Pero hay información que cambia por día. Si vemos el bot que vende boletos de cine, para que nuestro sistema de Inteligencia Artificial pueda saber que “La Mujer Maravilla” es una película y que en después “La Liga de la Justicia” también será un título, necesita obtener esta información de una base de datos.

Nuestro robot no está diseñado para sólo dar respuesta a una pregunta, sino que tiene la capacidad de llevar una conversación con un usuario. Para ello, utiliza una memoria que le permite entender contexto y recordar cosas que el usuario ha dicho. Por ejemplo, si un usuario escribe “De qué trata Batman V Superman?”, el bot sabrá que la intención es la de buscar información sobre una película, el extractor sabrá que Batman V Superman es una película, por lo que irá a buscar en el API del cliente su sinopsis, y se la regresará al usuario. Si el usuario después escribe “quiero verla”, nuestro motor de Inteligencia Artificial sabrá que el usuario hizo un cambio de intención a un proceso de compra, y al no dar información nueva sobre qué película, el bot asumirá que la persona sigue hablando sobre la anterior y brindará opciones de las funciones disponibles.

El bot, con el uso de las intenciones y entidades puede saber cuando no tiene programada alguna respuesta. Por ejemplo, si un usuario escribe “Quiero comprar palomitas”. El robot sabe que la intención del usuario es de compra, pero si el bot no encuentra ninguna entidad válida, como la palabra boletos, el motor de IA tiene la habilidad de mandar un mensaje por defecto como “Todavía no puedo vender lo que me estás pidiendo”. En este punto, le podemos brindar la opción al usuario de hablar con un asesor. Si la persona desea ser atendida por un humano, el bot creará una conversación en la consola de atención, donde todos los operadores estarán conectados. La conversación pasa a un estado manual, lo que significa que todos los mensajes de entrada llegan directo al asesor y viceversa.

Nosotros sabemos que las operaciones pueden llegar a ser muy complejas en una empresa y que la automatización de ciertos procesos no siempre es posible. Es por ello que tenemos la capacidad de que los asesores puedan dar información al bot directamente desde una conversación si no existe un API donde se pueda extraer. Digamos que para poder brindar cierto servicio a un usuario, necesitamos validar si su cuenta está activa. Con un API esto sería inmediato, pero supongamos que la forma normal conlleva que el operador vaya a cuatro sistemas a validar la cuenta. Nuestro sistema es capaz de interactuar de esta forma. El bot puede suspender parcialmente la automatización, cargar la conversación en la consola con información muy directa hacia el asesor. Por ejemplo, “Hay que validar la cuenta de este usuario con número 123456”. Cuando el operador vaya a los cuatro sistemas, le puede regresar la información al robot como cuenta válida o inválida. Con ello, nuestro sistema puede continuar con el flujo donde se había quedado.

En esta consola de operación, los clientes podrán supervisar conversaciones y tener un pequeño CRM con todos los datos que el bot ha recolectado sobre los usuarios. Para complementar la supervisión, nosotros brindamos un tablero de métricas donde se puede consultar el desempeño del bot y los operadores. Este componente es totalmente personalizable, por lo que se pueden generar los KPIs que se estén midiendo en aplicaciones móviles o sitios web. Dentro de este sistema se pueden extraer datos en formato CSV.