Escrito por Amaz Menzli en Planeta Chatbot.
Crea tu primer chatbot para el convertidor de divisas e impleméntelo en Slack.
Tabla de contenidos
Introducción
Si estás aquí porque quieres crear tu primer ChatBot. O tal vez porque ya has creado uno, y quieres mejorar la respuesta de tu chatbot con PLN. Entonces usted está en el lugar correcto.
Un chatbot es un programa informático que puede interactuar con humanos a través de una interfaz de chat y está diseñado para simular al humano utilizando inteligencia artificial.
De los miles de chatbots que existen hoy en día, los más conocidos son Siri, Alexa, Cortana … De hecho, los bots no solo son útiles para ayudarnos a planificar nuestro día y escuchar música. Se implementan cada vez más en una amplia gama de industrias, y las empresas las han introducido al mercado para comunicarse con los clientes. Pueden ir aún más lejos y sugerir lo que puedes hacer.
[cta]
En resumen, los bots pueden encargarse de la recopilación de datos, el munging y el análisis de rutina que anteriormente consumían recursos significativos.
En este artículo, te guiaré sobre cómo construir tu primer chatbot usando Dialogflow en minutos y desplegarlo en Slack. Llamaré a este Bot CurrencyBot .
Tabla de contenido
- Comparación entre las plataformas de chatbot con PLN
- Entendimiento básico
- Integración de Dialogflow
- Crea un Webhook para trabajar con la función de cumplimiento completo en Dialogflow
- Configurar un servidor proxy con Ngrok
- Dando vida a nuestro chatbot (Integrated the Bot on Slack)
Comparación entre las plataformas de chatbot con PLN
Tenemos una idea básica sobre los chatbots y su importancia. Ahora la pregunta es ‘ ¿Dónde y cómo podemos construir estos chatbots?’
Hay varias plataformas disponibles en el mercado para construir chatbots: Dialogflow, wit.ai, Rasa, Amazon Lex, etc.
La siguiente sección analiza algunas de estas plataformas:
1. Dialogflow:
Dialogflow (una vez conocido como Api.ai). Fue adquirido por Google en 2016. Esta plataforma se conecta con los usuarios de Google Assistant y otras aplicaciones y dispositivos de mensajería.
Ventajas
- Es útil: sin instalación, comienzas de inmediato.
- Es fácil: Dialogflow contiene muchos agentes preconstruidos que son muy fáciles de activar.
- Está integrado: puedes conectar tus plataformas favoritas como Facebook, Twitter, Slack, Telegram, etc. En un solo clic.
- Multilingüe (reconoce más de 15 idiomas).
- Te alegrará saber que es totalmente gratis.
Desventajas
- El banco de documentación y tutoriales no es muy satisfactorio.
- El control preciso sobre el procesamiento del diálogo no estará disponible para el programador.
2. Wit.ai:
Wit.ai (propiedad de Facebook) funciona de manera similar a Dialogflow: también procesa patrones de habla humana y filtra datos útiles como la intención y el contexto. Al igual que Dialogflow, proporciona una interfaz de usuario para ayudar a los desarrolladores a crear intentos, entidades y agentes.
Ventajas
- Es fácil: el tutorial de inicio rápido es muy práctico para comenzar.
- Está integrado: podrá integrarse con varias plataformas, como Facebook, Twitter, Slack, Telegram, etc.
- Es adaptable: podrás construir tu bot con Node.js, Python o Ruby.
- ¡Totalmente libre!
Desventajas
- No hay un entorno de desarrollo visual, por lo que tienes que estar familiarizado con el código.
- No es rápido. La curva de aprendizaje es más pronunciada y necesitarás invertir tiempo para descubrir cómo implementarla.
3. RASA:
Rasa es una herramienta de aprendizaje automático de código abierto para desarrolladores y equipos de productos. Rasa viene con Rasa NLU y Rasa Core. La NLU maneja los intentos y las entidades, mientras que el Core maneja los diálogos y el cumplimiento.
Ventajas
- Código abierto, lo que significa que sabemos exactamente lo que sucede debajo del capó y puedes personalizar las cosas tanto como desees.
- Puedes alojarlo en tu servidor.
- Se puede ejecutar como un simple servidor http o se puede usar desde python, utilizando API.
Desventajas
- Requiere la instalación de múltiples componentes.
- Requiere conocimiento tecnológico.
- Curva de aprendizaje: las fases de instalación, configuración y capacitación requieren experiencia en aprendizaje automático (al menos nivel básico).
Para este artículo, elegimos Dialogflow para trabajar porque proporciona desarrolladores junior y una gran experiencia de usuario para desarrollar un bot sin ser un experto en el campo.
Entendimiento básico:
Intención: una intención es la intención del usuario. Por ejemplo, si un usuario escribe “¿Cómo convertir 400 dt a Eur?” , La intención del usuario es recuperar el convertidor de divisas. Los intentos reciben un nombre, a menudo un verbo y un sustantivo sin usar espacios, como “convertidor de moneda”.
Entidad: una entidad modifica una intención. Por ejemplo, si un usuario escribe, “restablezcamos las monedas”, las entidades son “restablecer”, “cambiar moneda”. Las entidades reciben un nombre, como “restablecer”.
Acción: Cosas que nuestro bot diría o haría.
Cumplimiento: es básicamente lo que le decimos al bot que haga o ejecute, una vez que Dialogflow determine la intención correcta. Para nuestro ejemplo, solo necesitamos habilitar la alternancia para Habilitar llamada de webhook para esta intención.
Integración de Dialogflow
Para comenzar, abre la web de Dialogflow y haz clic en el botón “Registrarse gratis”. Te dirigirá a una página de registro, donde puedes iniciar sesión con tu cuenta de Google.
Entonces, para comenzar, haz clic en el botón “Crear agente” . Es posible que debas autorizar Dialogflow de nuevo para tener permisos adicionales para tu cuenta de Google. Esto es normal, así que haz clic en “Autorizar” .
En la siguiente pantalla, tenemos los detalles de nuestro agente:
- Nombre del agente: Esto es para tu propia referencia para que puedas diferenciar los agentes en la interfaz. Puedes elegir el nombre que quieras.
- Descripción: una descripción legible, para que puedas recordar lo que hace el agente. Esto es opcional.
- Idioma: el idioma en el que trabaja el agente. Para este tutorial vamos a trabajar en inglés.
- Zona horaria: la zona horaria en la que deseas que esté tu agente.
Luego haz clic en el botón “Crear”.
Charla:
Esta es una característica sorprendente de Dialogflow y permite que tu bot se capacite instantáneamente en un conjunto de preguntas frecuentes (preguntas simples como “¿Cómo estás?” , “¿Qué estás haciendo?” , “¿Cuál es tu nombre?” )
Permíteme demostrartelo: habilita small talk y haz clic en “guardar”.
En el Panel de prueba de la derecha, escribo “¿Cómo te sientes hoy?” Y la respuesta del Bot a eso.
Todas estas respuestas son el resultado de la función small talk y está integrada en un conjunto de respuestas de capacitación.
Ahora, deshabilita esta función por una buena razón. Creo que los bots que están diseñados para un dominio o tarea específicos, funcionan mejor. Debido a que Small Talk puede desviar fácilmente el flujo de la conversación hacia lo desconocido y el bot no podrá lograr lo que queremos.
Crear una intención
En nuestro nuevo agente de CurrencyBot crearemos una intención. La primera intención es “hola”, podemos agregar las frases de saludo en “Frases de entrenamiento”. Y las respuestas en “Respuesta de texto”. No olvides presionar “Guardar” cuando termines o se perderán toda la configuración.
Luego crearemos estos intentos:
Todos los intentos son similares en el proceso de creación; la diferencia está en los intentos de “conversor de divisas “ y “conversor de divisas con contexto” . Te mostraré en detalles dónde está la diferencia.
- Intención de “conversor de divisas” :
Agrega “setCurrency” en el contexto de salida + Frases de entrenamiento como en la imagen
Marca REQUIRED y cambia el NOMBRE DE PARÁMETRO en “Acción y parámetros” + habilita la llamada de webhook para este intento en “Fulfillement”
- Intención “convertidor de divisas con contexto”:
Agrega setCurrency en el contexto de entrada y salida + marca REQUIRED en “Acción y parámetros” + habilita webhook en “Fulfillement”.
Crea un Webhook para trabajar con la función de cumplimiento completo en Dialogflow
Creemos un servidor web simple con un punto final de webhook. Primero, necesitamos saber que un webhook es la forma de que una aplicación proporcione a otras aplicaciones información en tiempo real.
Para comenzar, tendrás que crear un nuevo directorio, donde almacenarás todo tu proyecto. Vamos a llamarlo “CurrencyBot”.
Cuando hayas creado tu directorio, ve a tu terminal, accede a él e inicia tu aplicación con Node.js (Primero debes instalar Node.js en tu sistema):
npm init
Cambia el archivo package.json para que sea así:
Después crea el archivo webhook.js y escribe estos comandos:
>npm install -g eslint>npm i restify request --save --save-exact
Puedes encontrar mi webhook.js aquí.
Si es tu primera vez con Node.js, instala “nodemon” con:
npm install nodemon
Después de eso, puedes ejecutarlo:
npx nodemon
Configurar un servidor proxy con ngrok
Ngrok es un software de proxy inverso de túnel multiplataforma que establece túneles seguros desde un punto final público como Internet a un servicio de red que se ejecuta localmente mientras captura todo el tráfico para una inspección detallada y su reproducción.
Puedes leer más sobre esto aquí y también instalarlo.
Ahora puedes abrir otra terminal y colocarla en el directorio de tu proyecto (mientras tu servidor local se está ejecutando) y escribe el siguiente comando:
ngrok http 3000
Te mostrará una nueva pantalla con un par de URL, la URL que necesitarás es la última que comienza con https
Copia esta URL y pégala en la sección Cumplimiento como se muestra a continuación:
NB: No olvides hacer clic en el botón “Guardar”.
En el lado derecho de Dialogflow, puedes probar tu Bot:
¡¡¡Bien, todo funciona bien !!! Ahora podemos implementar nuestro chatbot.
Para este artículo, elegí Slack.
Dando vida a nuestro chatbot (Integratar el bot en Slack)
Crearemos una integración slack creando una aplicación slack. Veamos el proceso de creación de una aplicación Slack. Lo primero que debes hacer es ir a “integración” y habilitar la integración de Slack.
El siguiente paso es crear una cuenta de Slack e ir a https://api.slack.com/ . Elige un lugar de trabajo Slack de desarrollo existente (en caso de que tengas uno) o crea uno nuevo.
Ahora crea una aplicación Slack en tu lugar de trabajo y asígnale un nombre. Llamemos a nuestra aplicación CurrencyBot.
El proceso se resume en est gif.
¡Funciona! 🎉🎉 👏 👏
Ahora puedes crear un chatbot simple pero muy eficiente.
Conclusión
Este fue un tutorial paso a paso para crear tu primer chatbot. Ahora puedes agregar tanta interactividad como desees. Puedes hacer que tu bot trabaje con entidades, realice llamadas a la API, reconocimiento de voz, etc. No
dudes en enviar tus comentarios. El código que necesitarás para este proyecto está disponible aquí.
Feliz lectura, feliz aprendizaje y feliz codificación.