Escrito por Soumya Mukherjee en Planeta Chatbot.
Tengo un amigo que está trabajando con IA Conversacional y me habló desde un principio de RASA. Inicialmente, era escéptico acerca de su rendimiento, la facilidad de desarrollo, la simplicidad, etc., pero me ha demostrado que estaba equivocado cuando intentaba cuestionarlo. Con esta herramienta, he podido crear mi primer bot en poco tiempo y, en consecuencia, desde entonces he estado enamorado de RASA. De hecho, he llevado a cabo un par de grandes proyectos con esta plataforma. Esto se traduce en que durante el último año he visto crecer esta herramienta. Debo decir que si quieres hacer un chatbot rápido, RASA será mi primera recomendación.
Durante bastante tiempo he sido el evangelist de RASA. Había organizado la primera reunión de RASA en la India, la primera en Mumbai y luego en Bangalore. Mientras estaba haciendo la primera reunión de RASA en Bangalore, uno de los participantes me pidió que compartiera mi experiencia y guiara a los principiantes para que descubrieran cómo usarlo y pudieran crear un chatbot súper rápido. Además, he visto muchos blogs de RASA y la mayoría son de naturaleza muy técnica, lo que conlleva a cualquier nuevo un entorno demasiado complicado como para poder empezar a programar. Precisamente por eso, lo que muestro en este artículo es bastante sencillo. Además, mantendré este blog actualizado a largo plazo con el objetivo de que sea alentador para aquellos que estén tratando de comenzar con RASA. Vamos a hacer este sencillo bot en tan solo 6 sencillos pasos… 🚀
Paso 1: Configuración del entorno
Para comenzar a trabajar con RASA, he creado un VM con la configuración de rasa. Si lo deseas puedes descargarlo desde aquí . Recuerda que hay que importarlo en VirtualBox como muestro a continuación:
Si deseas crear tu propia configuración, puedes instalar python y usar el comando “$ pip install rasa”. Esto instalará todos los paquetes necesarios para instalar rasa.
Un punto a tener en cuenta: si el comando anterior te da un error, puedes instalar los paquetes individuales y luego ejecutar nuevamente el comando pip.
Paso 2: Acceder a tu VM
Inicia VM e inicia sesión poniendo la contraseña como “admin”
Paso 3: Comprobar la versión RASA
Verifica la versión de RASA abriendo el terminal. Indicar que esta es la última versión de rasa en la VM. Dado que las actualizan de forma periódica, me comprometo a actualizar la publicación del blog con todas las últimas incorporaciones como cuando estén disponibles.
Tabla de contenidos
Crea tu primer bot RASA — ¡Es súper rápido!
Anteriormente, la mayoría de los desarrolladores extrajeron de git la estructura básica del proyecto de un rasa weather bot y luego la utilizaron para modificarla. Sin embargo, con la última actualización de RASA 1.0.1, ahora está disponible la boilerplate con la estructura básica del proyecto. También todos los comandos que se están utilizando ahora son bastante cortos.
Paso 4: Conocer tu estructura del proyecto
Crea un nuevo directorio como “rasa-medium-bot”. Una vez que el directorio está hecho, ve al directorio y crea la plantilla con “$ rasa init”
Presiona Enter. Al presionar enter, rasa creará la estructura del proyecto, entrenará el modelo para NLU y CORE y creará el archivo zip (carpeta de modelo) para el mismo. En las versiones anteriores de RASA, los desarrolladores de chatbot generalmente usan para extraer el proyecto predeterminado de RASA de Git y entrenar a NLU y core individuales. Con la última versión de RASA esto ahora está simplificado 🙂
Una vez que se crea el modelo, el siguiente mensaje es hablar con el bot entrenado, sin embargo, podemos hacerlo más tarde. A continuación puedes ver el conjunto de archivos que se crean con el comando rasa init.
Ahora veamos qué significa cada archivo en la estructura del proyecto abriéndolo en nuestro editor Visual Studio Code.
1. __init__.py : este es un archivo vacío que ayuda a Python a encontrar las acciones que has escrito.
2. domain.yml : este es el archivo más importante para RASA. Lo llaman como un dominio asistente. Tu bot tiene 2 componentes: NLU y CORE. La NLU es lo que el usuario le preguntará al robot. El CORE es lo que el bot responderá (hablaremos sobre los aspectos internos de RASA en un blog separado). Cuando entrenas a tu bot para ambos en el lado NLU / CORE, toma la referencia de este archivo y crea modelos separados. En RASA 1.0, este es un archivo zip único que se está creando, sin embargo, también puedes entrenar a estos dos por separado. Las características importantes en este archivo son:
Intenciones: todas las intenciones que has definido en tu archivo NLU (nlu.md). Por ejemplo, cuando el usuario pregunta “Hola, ¿cómo estás?” O “Hola” o “Hola” de la misma manera. Rasa realizará la clasificación de intenciones y mapeará esta oración para “saludar”. La misma pregunta debe definirse en el archivo NLU.md bajo la intención #greet.
Acciones / templates: las acciones no son más que qué bot responderá al usuario. En el ejemplo a continuación, verá utter_greet (en acción) y utter_greet (en plantilla), lo que significa que el bot responderá ¡Hey! Cómo estás? cuando un usuario pide un mensaje de bienvenida como “hey / hola / buenos días” (corresponde a una acción) .
Aparte de esto, tendrá ranuras / entidades (veremos esto en otra publicación).
3. actions.py: este es un archivo en el que puedes escribir tus acciones personalizadas. Por ejemplo: si un usuario pregunta “cómo está el clima en Mumbai” una vez que se realiza la clasificación de la intención y la extracción de la entidad, se puede llamar a la acción de acción para golpear una API del tiempo/clima. Además, también puedes definir un fallback_custom_actional al que se puede llamar si el componente NLU no puede entender la conversación entrante. A continuación, puedes almacenar esas preguntas, volver a entrenar tu modelo.
4. config.yml: este es un archivo importante, que le dice a rasa cómo entrenar a tu bot. Dicho esto, decidirá cómo entrenar tanto a la NLU como al lado CORE de tu bot. Para esta guía usaremos spacy_sklearn como nuestro algoritmo de entrenamiento NLU. La razón por la que usaremos spacy es que spacy proporciona tokeniser incorporado, incrustaciones de palabras para saludos como hola, adiós, ¿cómo estás? y todo lo demás.
5. credentials.yml: para conectar otros servicios como slack, facebook messenger (plataformas de voz y chat). Más adelante en la serie de blogs veremos cómo conectarnos con Facebook Messenger, Google Voice Assistant, etc.
6. data / nlu.md: Esto define las preguntas probables que el usuario puede hacer. Como desarrollador de bots, necesitas definir todo el conjunto de preguntas aquí. Si observas todas las preguntas que define son parte de alguna intención, ya sea Saludar, despedirse, Afirmar, Negar, etc. He añadido una más para saludar “¿cómo estás hoy?”
7. data / stories.md: esto define el flujo de la conversación o puede decir posibles escenarios a los que la conversación puede conducir.
Por cada conversación que el usuario hace con el bot, RASA NLU hace un intento de clasificación y extracción de la entidad y RASA Core es responsable de lo que el Bot “dirá” al usuario.
Si reviso las pantallas que he compartido más arriba, lo que entiendo es que si el usuario pregunta “hola” lo qué hará RASA NLU es clasificarlo como una intención y marcar este mensaje como una intención de “saludo” y luego RASA Core (que es responsable de la expresión) responde un mensaje de la plantilla “utter_greet” “Hey! ¿Cómo estás?”. Ahora, si el usuario dice “perfecto”, RASA asignará esto a la intención “mood_great” y emitirá “¡Genial, continuemos!”. Si lo miras, está siguiendo una historia / escenario según el archivo “stories.md”.
8. endpoints.yml: ideal si deseas interactuar con tu bot a través de la API over rest o quieres puedes almacenar la información del rastreador (clasificar las conversaciones) directamente en redis o si deseas ejecutar tu servidor de acciones personalizadas, etc. Todo ello irá en este archivo.
Paso 5: Entrena tu Bot RASA
Ahora veamos cómo podemos ejecutar este “rasa-medium-bot”. Dado que hemos agregado una nueva pregunta (datos de entrenamiento) en la canalización nlu.md y space_sklearn en el archivo config.yml, debemos volver a entrenar el bot. Para lo que necesitas abrir la terminal, ir al directorio y escribir “rasa train”, esto capacitará y creará los modelos NLU y CORE.
Paso 6: Ejecuta tu bot RASA
Ahora que se ha completado el entrenamiento, puedes ver que hay dos archivos .gz dentro de la carpeta de modelos. RASA recogerá la última cada vez que ejecutes tu bot. Para ejecutar el bot tipo “rasa shell”. Verás que la pregunta que hemos agregado es entendida por el bot y contestada “basada en las historias”.
Que sigue!!
Lo que quiero que hagas es agregar más datos de NLU, historias y seguir entrenando y jugando con este bot. En los blogs subsiguientes, hablaré sobre acciones personalizadas, cómo hablar con tu bot a través de rest (postman), trabajar con acciones alternativas, plantillas personalizadas, acceder a las API de terceros y enviar respuestas personalizadas a los usuarios, sobre RASA X, conectarse con el asistente de google y varios otros temas.
Si te gusta la publicación, sígueme en Twitter: @qasoumya o en Linked-In: mukherjeesoumya
Gracias
por presentarme a RASA.