Programemos un bot (parte I): nuestro primer chatbot para Slack

Hay que aceptarlo, los bots son “la nueva onda” en las aplicaciones y servicios móviles y web más utilizados de hoy en día. Desde redes sociales hasta aplicaciones de mensajería y servicios web más específicos, los chatbots han llegado para quedarse y es que tienen muchísimas ventajas y aplicaciones para cualquier sector al que se destinen.

Por ello, he decidido adentrarme con ustedes en un viaje de varios artículos para programar distintos bots y explorar un poco en esta área. En esta primera edición, crearemos nuestro primer chatbot para la aplicación de mensajería y gestión: Slack.

La teoría

Pero primero lo primero, definamos qué es un chatbot: un chatbot es un servicio basado en texto que, por lo general, usa Inteligencia Artificial para interactuar con los usuarios a través de una serie de mensajes basados en respuestas predefinidas.

A partir de la definición, podemos incursionar en ventajas potenciales, con la ayuda de un chatbot, tu empresa, app, servicio o web tendrá un “empleado” las 24 horas del día durante todo el año encargado de responder las preguntas frecuentes de tus clientes, usuarios o visitantes, ¿genial no?

Lo necesario

En este tutorial, iremos paso a paso para crear un chatbot básico para Slack, antes de iniciar, veamos el ambiente de desarrollo y el Software necesario para programar nuestro bot:

  • Tener instalado NodeJS
  • Tener instalado Slack y crear un grupo Slack para probar nuestro chatbot
  • Tener una cuenta en GitHub
  • Para desarrollar el bot, partiremos del proyecto BotKit, desde tu cuenta GitHub, haz fork del proyecto y clona el repositorio en tu ordenador

Una vez hayas clonado del repositorio, no olvides abrir el package.json y editar las url del repositorio para que apunte a tu copia, además, deberás instalar todas las dependencias del proyecto ejecutando npm install desde tu terminal ubicado en la carpeta del mismo.

Conectando con Slack

Para avisarle a Slack que tenemos un nuevo bot para él, podemos ingresar a este enlace y elegir un nombre para nuestro bot, en mi caso, he elegido testbot.

Una vez creado, podemos anotar el API token del bot creado. Además, podemos especificar más información acerca de nuestro bot, agregar una descripción de lo que hace, un icono para identificarlo, etc. Tras haber especificado la información que deseamos, podemos ir al final del formulario y dar click a la opción “Save Integration”.

Guardados los datos, podemos iniciar nuestro bot con el comando:

TOKEN=xoxb-your-token-here npm start 

Tras ejecutarlo, nuestro bot iniciará sesión en nuestro equipo Slack y podremos interactuar con él, si, por ejemplo, escribimos “Hello” nos devolverá el saludo.

Mejorando nuestro chatbot

Bien, si has llegado hasta aquí, ya deberías haber recibido el saludo cordial de tu bot, pero a menos que solo necesites cortesía fraternal momentánea, esto no es del todo útil, veamos cómo podemos mejorar la experiencia de interacción con nuestro nuevo amigo.

Para agregar más opciones de respuesta a nuestro bot, lo primero que debemos hacer es ir a la carpeta del repositorio que clonamos y abrir el archivo index.js.

Una vez tengamos el archivo abierto, debemos ubicar la sección de la lógica base del bot, si no has modificado nada aún, debería estar en la línea 80 o donde veas el siguiente bloque de código:

Como podemos ver en el código, BotKit se estructura alrededor de los event listeners, el más destacado es el hears listener, el cual detecta si al bot le corresponde responder cierto mensaje según el contenido enviado, por ahora, el bot sólo responde a la palabra “hello”, vamos a generalizar un poco el listener agregando otras formas de saludo y, por qué no, saludos en otros idiomas:

Como podemos ver, he cambiado la respuesta por defecto al saludo de nuestro bot y, además, agregué un array con distintas opciones de saludos en inglés, español, italiano, latín, alemán y francés. Para que los cambios tengan efecto, debemos guardar los cambios del index.js y reiniciar nuestro bot ejecutando en la consola el comando:

TOKEN=xoxb-your-token-here npm start 

El resultado será el siguiente:

Enhorabuena, hemos mejorado el saludo de nuestro bot, pero, si nos fijamos en el listener hears, podemos notar que recibe dos parámetros, además de la función. A través del primer parámetro, definimos qué palabras el bot debe escuchar, a través del segundo parámetro, podemos definir si el bot escucha solo a mensajes directos, menciones o menciones directas, hagamos la prueba:

Reiniamos nuestro bot y podemos hacer una mención con @testbot en Slack:

Excelente, ya tenemos un bot y podemos comunicarnos con una serie de palabras para obtener una respuesta, pero esto no es todo lo que podemos hacer con BotKit y Slack, para indagar más y conocer los métodos predefinidos que tenemos a la mano, podemos revisar la documentación.

Para las próximas ediciones de este artículo, mejoraremos nuestro bot para Slack y te mostraré cómo desplegarlo para darle más libertad, no queremos que esté infinitamente confinado a nuestra laptop ¿o sí? Si tienes dudas o has experimentado un poco más con BotKit, no olvides dejarme tu comentario, nos vemos en la próxima edición y ¡Que tengas muy buen código!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s