Rasa Open Source

Parcel io
5 min readApr 29, 2021

Rasa es un framework de machine learning de código abierto para conversaciones de voz y texto automáticos. Entiende mensajes, mantiene conversaciones y se conecta a canales de mensajería y APIs.

Rasa Playground

En la documentación oficial de Rasa tiene la posibilidad de crear un proyecto y descargaelo para continuar luego construyendo la cnversación.

Instalación

pip3 install -U pip

pip3 install rasa

Para actualizar Rasa:

pip3 install — upgrade rasa

Para descargar una versión específica de Rasa:

pip3 install rasa==1.8.3

Línea de comandos Rasa

- rasa initCreates a new project with example training data, actions, and config files.

- rasa trainTrains a model using your NLU data and stories, saves trained model in ./models.

- rasa interactiveStarts an interactive learning session to create new training data by chatting to your assistant.

- rasa shellLoads your trained model and lets you talk to your assistant on the command line.

- rasa runStarts a server with your trained model.

- rasa run actionsStarts an action server using the Rasa SDK.

- rasa visualizeGenerates a visual representation of your stories.

- rasa testTests a trained Rasa model on any files starting with test_.rasa data split nluPerforms a 80/20 split of your NLU training data.

- rasa data convertConverts training data between different formats.

- rasa data validateChecks the domain, NLU and conversation data for inconsistencies.

- rasa exportExports conversations from a tracker store to an event broker.

- rasa xLaunches Rasa X in local mode.rasa -hShows all available commands.

- rasa initCrea un asistente completo para iniciar. Crea los siguientes archivos:

Estructura de los archivos (rasa init)

Acá se especifica bien los comandos y las diferentes opciones y argumentos:

https://rasa.com/docs/rasa/command-line-interface

Conversation-Driven Development

# Qué es CDD?

CDD es el proceso de escuchar a los usuarios y usar esos insights para mejorar el asistente AI. Es en general la mejor práctica para el desarrollo del chatbot.

Desarrollar asistentes sólidos es dificil, porque los usuarios siempre van a decir algo que no se anticipó. El principio atrás de CDD es que en cada conversación los usuarios te dicen — en sus propias palabras — exactamente lo que quiere. Poniendo en práctica CDD en cada etapa de un desarrollo de un bot, orientás al asistente a reconocer palabras o comportamiento de usuarios reales.

CDD incuye las siguientes acciones:

  • Revisión de las conversaciones
  • Anotar los mensajes y los usa como datos de entrenamiento NLU
  • Testea que el asistente siempre se comporte como se espera
  • Realiza un seguimiento de los fallos del asistente y mide su rendimiento a lo largo del tiempo
  • Corrije cómo el asistente maneja conversaciones fracasadas

CDD no es un proceso lineal; es un círculo de acciones que se realizan una y otra vez mientras se desarrlla y se mejora el bot.

El producto Rasa X, es una herramienta que fue construida con el propósito de CDD.

# CDD en las primeras etapas de desarrollo

Al principio puede parecer que CDD no tiene un rol importante — después de todo, hay muy pocas conversaciones para recurrir. De todas maneras, hay acciones CDD que se pueden tomar desde el principio del desarrollo del bot.

  1. Ver las mejores prácticas para datos NLU e Historias para detalles
  2. Las conversaciones a tomar son usuarios que no conocen cómo funciona el bot desde adentro. Los desarrolladores no deben ser los usuarios que testean, ya que conocen qué es lo que puede hacer y qué es lo que no.
  3. No sobreinstruir a los usuarios finales; debe ser intuitivo
  4. Configurar un pipeline CI/CD
  5. la idea de CDD es guiarse en pequeñas y frecuentes actualizaciones del bot a medida que se va teniendo información de conversaciones.

En esta etapa, se puede instalar Rasa X local para que sea más fácil compartir el bot con usuarios finales, colectar información y aplicar buenas prácticas NLU e Historias basadas en las conversaciones que se colectan.

# CDD with a bot in production

Una vez que el bot está en producción, vas a tener más conversaciones para tener insights. Despues podés aplicar acciones CDD. En esta etapa, podés instalar Rasa X en un servidor para deployar el bot y habilitar CDD con un bot en producción.

Annotate#

Continue to follow best practices for NLU as you add new user utterances from real conversations to your training data. Be careful not to overfit your NLU model to utterances like those already in your training data. This can happen when you continuously add user utterances that were already predicted correctly and with high confidence to your training data. To avoid overfitting and help your model generalize to more diverse user utterances, add only user utterances that the model previously predicted incorrectly or with low confidence.

Test#

Add successful user conversations to your test conversations. Doing this consistently will help ensure you don’t introduce regressions as you make other fixes to your bot.

Track#

Look for clues to success and failure to help you track your bot’s performance.

Some metrics are external to your bot. For example, if you are building a bot to relieve demand on a customer service call center, one metric for success could be the reduction in traffic to the call center. Others you can get directly from conversations, such as whether a user reaches a certain action that represents achieving the user goal.

Automatically tracked metrics are by nature proxy metrics; the only way to get a true measure of success would be to individually review and rate every single conversation with your bot. While this clearly isn’t realistic, just keep in mind that no metric is a perfect representation of your bot’s performance, so don’t rely only on metrics to see where your bot needs improvement.

Fix#

Continue to follow best practices for Stories as you expand and improve your bot’s skills. Let user demand guide which skills you add and which fixes you make. Make smaller changes frequently rather than making big changes only once in a while. This will help you gauge the effectiveness of changes you’re making, since you’ll get user feedback more frequently. Your CI/CD pipeline should allow you to do so with confidence.

--

--