Building Conversational User Interfaces with Rasa published 4/10/2023 | 3 min read

In recent years, chatbots and virtual assistants have become increasingly popular. They can be found on websites, mobile apps, and even messaging platforms like Facebook Messenger and WhatsApp. They provide an easy and convenient way for users to get information or perform certain tasks without having to navigate a complex website or app.

In this tutorial, we will learn about Rasa, an open-source platform for building conversational user interfaces. Rasa allows developers to build their own chatbot and deploy it on various channels like Facebook Messenger, Slack, and WhatsApp.

Why Rasa?

Rasa stands out from other chatbot platforms because it incorporates machine learning to improve the accuracy of chatbot responses. This means that the chatbot can learn from user interactions and improve over time. Rasa also provides a lot of flexibility in terms of customization, allowing developers to build a chatbot that meets their specific needs.

The Anatomy of a Rasa Chatbot

A Rasa chatbot consists of two primary components: NLU (Natural Language Understanding) and Dialogue Management.


NLU is responsible for understanding the user's intents, which are the actions that they want the chatbot to perform. For example, a user may want to know the weather or book a hotel room. Intent classification allows the chatbot to understand the user's intent based on their message.

Rasa uses machine learning to train the chatbot to understand different user intents. The more interactions the chatbot has, the better it becomes at understanding user intents.

Dialogue Management

Once the chatbot understands the user intent, it needs to provide an appropriate response. Dialogue management is responsible for handling the conversation flow and selecting the right response. Developers can define rules and handle edge cases to ensure that the chatbot provides useful and relevant information to the user.

Rasa also provides a visual interface called the training data manager, where developers can define entities, intents, and actions.

Building and Deploying a Rasa Chatbot

To build and deploy a Rasa chatbot, you will need to follow these steps:

  1. Install Rasa

  2. Create a new Rasa project using the rasa init command

  3. Define your NLU and dialogue management components

  4. Train the chatbot using the rasa train command

  5. Test the chatbot using the rasa shell command

  6. Deploy the chatbot to your desired channels

Once you have the chatbot up and running, you can use Rasa X, a web-based tool, to manage and improve your chatbot's performance. Rasa X allows you to review conversations, test new training data, and train your chatbot in real-time.


Rasa is a powerful and flexible platform for building chatbots and virtual assistants. With its machine learning capabilities and flexible architecture, developers can create chatbots that improve over time and meet the specific needs of their users. If you are interested in learning more about Rasa, check out the official documentation and get started building your own chatbot today!

You may also like reading: