Los chatbots son un tema que no ha dejado de sonar y es que la importancia y eficiencia se ha visto demostrada en los departamentos de atención al cliente en todo el mundo. Nosotros mismos como clientes podemos ver la solución en muchos lugares para atención a las famosas FAQs, así como para horarios tardíos.

Limitantes

Ahora bien, el problema es que el desarrollo de estos servicios es difícil y suele necesitar tiempo, principalmente porque para hacerlo bien necesitamos una base de ML (Machine Learning) y un algoritmo capaz de entender el lenguaje humano.

Una vez que tenemos el proyecto base debemos conectarlo a los distintos servicios de mensajería que queramos usar (Messenger, Slack, Telegram, etc.).

DialogFlow

Este es un producto genial comprado por Google en el año 2016 con el cual simplificamos las limitaciones que existen en el desarrollo de chatbots, además de potenciar las integraciones con este llevándolo incluso a usar Actions de Google Assistant y permitiéndonos descargar el proyecto para implementarlo incluso como un Alexa Skills.

Para realizar el bot en la plataforma requerimos separar los elementos en lo que se conoce como Entities y las acciones que los utilizan en Intents

Entities:

Las entities son en si los las distintas partes u objetos que podemos usar en nuestros Intents en el caso de este proyecto creamos 4 tipos de objetos básicos Comida, Ingrediente, Medida y Orden.

Dentro de cada uno existente las distintas variantes y cada variante tiene sinónimos que inicial el aprendizaje del robot. El ejemplo más basto de este proyecto son los ingredientes donde podemos ver cosas como pimientos, camarones, jamón, pimiento y cada uno con sus sinónimos.

Intents:

Estas son las acciones que nuestro bot puede realizar. Para empezar con estos necesitamos realizar lo que se conoce como Frases de entrenamiento con esto nos referimos a que escribimos de la forma en la que el usuario escribirá y usamos las palabras que colocamos en nuestros entities.

Una parte importante de esto es el contexto ya que si tenemos campos requeridos mediante esto se reintenta y se considera terminado el intent cuando todos los campos requeridos son completados.

Ahora bien, considerando el tema de las respuestas hay múltiples opciones, podemos crear respuestas fijas o bien podemos conectarlo a un webhook que especificamos en la sección de fulfillment.

Fulfillment:

El tema con esto es usar los webhooks que creemos usando interfaces REST. La configuración original nos sugiere usar las Cloud Functions de Firebase, pero podemos usar el que deseemos. Estos webhooks se basan principalmente en JavaScript usando NodeJS con las librerías de Google para el tema.

Integrations:

Finalmente, como hablamos al inicio está herramienta tenemos una gran cantidad de integraciones con distintos canales empezando por el web demo, la lista completa de integraciones es grande y cada uno tiene sus instrucciones para facilitar el proceso.

Web Demo Facebook Messenger DialogFlow Phone Gateway
Slack Viber Twitter
Twilio IP Twilio SMS Skype
Telegram KIK Line
Cisco Spark Amazon Alexa Microsoft Cortana

Algo importante es recordar que por el momento es de las pocas herramientas que tienen conexión directa con Actions de Google Assistant.

Si deseas probar el bot puedes buscarlo en tú aplicación de Telegram (https://t.me/PizzaLab_Bot) o bien seguir a la versión web (https://goo.gl/ix8DyV)

El código y demás lo encuentras con facilidad en el siguiente repositorio: https://goo.gl/Gux1ez