En este articulo trataremos de explicar cómo crear nuestro primer bot con la plataforma de Google, Dialogflow.
Por otro lado, aprovecharemos para comentar algunas diferencias vistas con otras plataformas que ya hemos tratado en posts anteriores, como el de bots con Oracle
Lo primero es crear una cuenta en Dialogflow. Esta puede hacerse con una simple cuenta de Google (ya que podemos decir que es prácticamente imposible no tener una).
Actualmente está dividido en dos planes: Estandar, que es el gratuito con ciertas limitaciones y sin SLA, y Enterprise, que ya contiene ciertas garantías y escalabilidad en función de nuestras necesidades en Google Cloud.
Como aprende el bot
Lo primero que haremos es crear un agente. Esto es un tendencia que he notado desde hace un par de meses: ya no se habla tanto de Bots o ChatBots sino mas bien de agentes o asistentes digitales. De ahí quizá el cambio de nombre en la nueva plataforma de Oracle. Oracle Digital Assistant.
A este agente le iremos creando Intents, que serán nuestros casos de uso, a los que a su vez asociaremos frases que iremos dando al agente con el objetivo que aprenda lo mas rápido posible.
En este punto comentar que tanto la plataforma de Google como la de Oracle trabajan con unos motores de inteligencia muy rápidos. De modo, que con solo guardar nuestro bot, ya lo tenemos listo para su uso.
Dialogflow permite organizar las respuestas según los canales de integración escogidos. Este punto me parece muy interesante ya que podemos definir ciertos comportamientos en función del canal para un mismo bot, de una manera muy cómoda y rápida. Y aunque parece un hecho sin importancia, en realidad es muy importante, ya que muchas veces el canal marca nuestra forma de comunicarnos o expresarnos.
Integraciones con canales
Este es uno de los puntos fuertes de esta plataforma, ya que actualmente cuenta con una gran cantidad de integraciones ya creadas (one click integration) de forma que el despliegue de nuestro agente o bot en dichos canales es inmediata.
Por su lado, la ultima versión de la plataforma de Oracle ya integra los canales de Microsoft y Slack canales en Oracle Digital Assistant
Lógica de Negocio
Aquí tenemos varias vías, una a través de Cloud Functions for Firebase integrada en la propia plataforma y otra donde simplemente llamaremos a una URL donde estará nuestra lógica de negocio, léase un servidor express con Node.js.
Para ejemplos sencillos, la primera parte ya nos funcionaría. Se trata de añadir en la map de intents, nuestro intent y asociarlo a una función propia donde realizaremos la lógica:
intentMap.set('saludar', salHandler);
function salHandler(agent) {
agent.add('My name is Dialogflow!');
}
Para mas información aquí esta la documentación oficial: https://dialogflow.com/docs/fulfillment/how-it-works
Mas allá de las conversaciones en modo texto
Ya hace mucho tiempo que los bots dejaron de basarse en simple texto plano. Actualmente contamos con imágenes, menús, botones, tarjetas, etc.
Aquí es donde se complican mas las integraciones ya que para conseguir ciertos elementos a nivel de interfaz deberemos conocer las API´s de los canales de destino. Pero cada vez es mas habitual que las propias plataformas nos ofrezcan algún tipo de API que nos abstraiga de la complejidad, conocimiento y mantenimiento de como construir ciertos elementos conversacionales.
En este caso, por parte de Google tenemos la librería https://github.com/dialogflow/dialogflow-fulfillment-nodejs. Pero siempre podremos optar por hacer la integración directa a través de la API del canal. En este caso, Slack es un canal que ofrece una muy buena documentación a nivel de integración y mensajes: https://api.slack.com/docs/messages
Para finalizar este post os dejo una captura de la integración de nuestro AtlassianBot en slack con Dialogflow:
Uno de los puntos fuertes de DialogFlow es la integración directa con Google Assistant o Actions, para poder desplegar nuestro bot en los ya tan de moda altavoces inteligentes: Google Home.
En este sentido la integración es directa y muy rápida y sencilla. Tal como se puede ver en la siguiente imagen de la documentación oficial, lo que tenemos es una capa intermedia Google Assistant, entre el usuario y nuestro agente de DialogFlow:
¿Qué plataforma elegir?
Al final, la plataforma escogida para nuestros bots dependerá de muchos factores y no solo de los técnicos o de características funcionales que puedan aportar las plataformas.
También será un factor clave el tipo de bots que queramos implementar. No es lo mismo un bot sencillo de consulta de salas o calendarios que uno que quizá cuente con una posible integración con agentes o seres humanos. Otros factores pueden ser el tipo de componentes o de conversación que queremos establecer entre el bot y los usuarios, canales de despliegue, si tendremos también despliegues en altavoces inteligentes, etc.
Espero que os haya gustado. Para estar al día de próximas entregas, no dudes en seguirnos en Twitter.