Los chatbots son tendencia desde hace ya mucho tiempo y cuentan con una legión de gente a los que les encantan. Muchos de ellos creen que los bots son lo más de lo más, y que pronto reemplazarán a las aplicaciones, mientras que los más escépticos piensan que son solo una moda pasajera...
En este artÃculo no hablaremos del futuro de los chatbots. De lo que sà hablaremos es de cómo funcionan, para qué se utilizan y cómo ejecutar uno.
¿Qué es un chatbot?
Un chatbot es un servicio o herramienta con el que puedes comunicarte mediante mensajes de texto. El chatbot entiende lo que estás intentando decir y responde con un mensaje coherente, relevante y directo relacionado con la tarea o petición que le estás solicitando.
Si recuerdas Cleverbot, verás que esto de los chatbots no es nada nuevo. Lo que los hace tan relevantes ahora es:
- La enorme cantidad de tiempo que pasamos enviando mensajes de texto debido al boom de la aplicaciones de mensajerÃa instantánea como Facebook Messenger, WhatsApp... Que convierten a los usuarios adictos a estas apps en un mercado donde las empresas pueden involucrar a clientes potenciales.
- Los avances en la inteligencia artificial, el aprendizaje automático y el procesamiento del lenguaje natural, lo que permite a los bots conversar más y hacerlo como si fueran personas de verdad.
- Los chatbots modernos no dependen únicamente de los mensajes de texto. También pueden enviar imágenes, enlaces... proporcionando una experiencia similar a una aplicación.
Esto les permite ser utilizados para diversos propósitos, tales como compras, servicio al cliente, noticias, juegos y cualquier cosa que te puedas imaginar. Un buen chatbot no tiene porqué realizar una gran variedad de tareas. Por ejemplo un bot que te muestra las últimas noticias de un blog, no tiene porqué ser capaz de pedir comida china. Es decir, las tareas que realice, las debe llevar a cabo a la perfección.
¿Cómo funcionan los Chatbots?
La mayorÃa de la gente no desarrolla sus chatbots desde cero, debido a que existen muchos frameworks y servicios que son una gran ayuda. Sin embargo, a fin de entender cómo funcionan los bots, tenemos que repasar a grandes rasgos su estructura interna.
Backend: Los chatbots pueden estar desarrollados en cualquier lenguaje de programación que te permita hacer una API web, básicamente. Para la mayorÃa de la gente esto se traduce en Node.js o PHP, pero existen muchas librerÃas para bots desarrolladas en Java y en Python que son muy interesantes también. El backend recibe mensajes, piensa en una respuesta y la devuelve al usuario.
Frontend: Esto puede ser una aplicación de mensajerÃa instantánea famosa (Facebook Messenger, Slack, Telegram), o una interfaz de chat simple como Realtime Chat With Node.js. No tiene porqué estar limitado a una sola plataforma. El mismo bot se puede implementar en más de un sitio.
Conectando los dos: Tu servidor web tendrá que configurar los webhooks (conexiones basadas en URLs entre tu bot y la plataforma de chat). Los webhooks te permitirán enviar y recibir mensajes de forma segura a través de simples peticiones HTTP. Todas las principales aplicaciones de mensajerÃa instantánea cuentan con un documentación detallada sobre cómo conectar con bots.
Bots tontos y bots inteligentes
Dependiendo de la forma en que se programan los bots, podemos separarlos en dos grandes categorÃas: basados en comandos (bots tontos) y en el aprendizaje (robots inteligentes).
Los bots basados en comandos se estructuran alrededor de palabras clave especÃficas que el bot reconoce. Cada comando tiene que ser programado manualmente por el desarrollador utilizando expresiones regulares u otras formas de analizar cadenas. Si el usuario dice algo más allá de los escenarios programados, el bot no responderá de manera útil.
Aunque las capacidades de estos bots "tontos" son limitadas, son más que suficientes para la mayorÃa de diseños de bots, especialmente cuando se combinan con otros tipos de UI como preguntas con múltiples opciones.
Los bots que aprenden, confÃan en algún tipo de inteligencia artificial para conversar con los usuarios. En lugar de buscar una respuesta predefinida, los bots inteligentes cuentan con respuestas adecuadas para cada caso. También realizan un seguimiento del contexto de la conversación y recuerdan lo que se le ha dicho en anteriores conversaciones, ¡al igual que un ser humano!
Trabajar con procesamientos del lenguaje natural y aprendizaje automático no es una tarea sencilla, y menos para los desarrolladores novatos. Afortunadamente, no tienes porqué realizar todo ese trabajo. Existen una serie de librerÃas excelentes (ConvNetJS, nlp_compromise, TextBlob) y servicios (wit.ai, api.ai) que pueden ayudarte a enseñar a tu bot ciertas habilidades conversacionales.
Empezando con chatbots
Si he conseguido que te sientas atraÃdo a estos seres de ciencia ficción y quieres empezar a desarrollar tu primer chatbot, he aquà algunos consejos que te ayudarán a comenzar. Dependiendo de la cantidad de trabajo que desees llevar a cabo por tu cuenta, puedes desarrollar tu bot desde cero, o simplemente puedes utilizar un framework para ahorrarte muchÃsimo tiempo. Tu decides...
- BotKit - El toolkit más famoso para desarrollar bots. Es open-source y está muy bien documentado.
- Claudia - Creador de chatbot diseñado para AWS Lambda.
- Bottr – Framework super simple de Node.js.
Una vez que hayas finalizado tu bot, verás que la mayorÃa de estos frameworks te permiten conectarte fácilmente a las principales plataformas de mensajerÃa, lo que se traduce en un enorme ahorro de tiempo, ya que cada una de esas plataformas cuentan con diferentes procesos de configuración.
Si descartas el proceso de hacerlo desde cero, puedes confiar en uno de los muchos servicios de construcción de bot disponibles:
- wit.ai - Servicio que recibe texto sin formato o datos de voz y utiliza la PNL para ayudarte a administrar las respuestas.
- Chatfuel - Una herramienta para Facebook Messenger o Telegram.
- motion.ai - Servicio completo de desarrollo de bots con soporte para muchas plataformas de mensajerÃa.
- api.ai - Procesamiento de lenguaje natural que te permite crear bots y definir escenarios de conversación.
Espero que este artÃculo te haya sido útil y te hayamos introducido adecuadamente al mundo de los chatbots. Si tienes alguna pregunta u opinión, no dudes en dejar un comentario a continuación.
Fuente: tutorialzine.com