Skip to content

December 17th, 2019

Rasa Open Source + Rasa X: Better Together

  • portrait of Rasa


Update: A lot of things have changed since this post was written. Rasa X, the freemium companion tool to Rasa Open Source, is no longer supported or maintained, and we are currently focused on the development of the Rasa Enterprise platform. To learn more about this, you can check out this blog post

What is Rasa X? How is it different than Rasa Open Source? Do I need them both to build my assistant? This a common question from the Rasa community, which we'll begin to answer here. The TL;DR is: use them both, as it will allow you to more quickly improve the quality of your contextual assistant.

While many developers are familiar with Rasa Open Source, Rasa X is a new product from Rasa, launched earlier this year. If you're reading this, you probably know that Rasa Open Source is a framework that includes the latest NLU research, dialogue management that combines business logic with machine learning, and integrations which developers use to create great text- and voice-based contextual assistants.

To further help developers working with our open source framework, we launched Rasa X: a free toolset that helps you quickly iterate on an assistant built using Rasa Open Source. We created Rasa X because everyone needs a tool to review conversations users have with your assistant and use those to improve the assistant over time.

This blog focuses on how to work with Rasa Open Source and Rasa X together, including best practices that we at Rasa use to create our own contextual assistants, like Carbon Bot.

Rasa Open Source & a "minimum viable assistant"

If you've never used Rasa Open Source, the best place to get started is with the Rasa docs, which includes a basic tutorial to create an assistant called mood bot.

For this blog, we'll assume that you have Rasa Open Source installed, and that you have a basic assistant that can handle the most important happy path stories for your use case - we call this a minimum viable assistant.

Adding in Rasa X

Now, how do you make your basic bot better? This is where Rasa X comes in.

Rasa X is a toolset that layers on top of Rasa Open Source, making it easier to review conversations, identify next steps in development, and create new training data to improve far beyond the first version of your assistant.

Rasa X allows you to:

  • Easily review conversations and improve your assistant by iterating on models and code
  • Share your bot with testers and real users to gather more conversations
  • Integrate with your CI/CD setup so that all changes are automatically tested before merging and deploying
  • Retrain your model and redeploy it to gather more conversations to continuously improve your assistant

If you haven't already, learn how to get started with Rasa X in our docs or in this Rasa Masterclass video tutorial.

Why real conversations matter

Capturing good training data is one of the biggest challenges when it comes to building conversational AI assistants. One mistake that developers often make is to spend weeks or even months coming up with training data themselves, and when they finally get users to test the assistant, it breaks immediately. The best thing you can do is involve test users as soon as you can, and we created Rasa X to make this as easy as possible. You can't anticipate how users will talk to your assistant, so there's no substitute for learning from their conversations. This is why we believe that real conversations are more important than hypothetical ones.

First, improve your assistant yourself

At Rasa, we follow a specific workflow for improving an assistant with Rasa X, before sharing it more broadly with test users. We iterate on the steps below, until we are comfortable the bot is robust enough to share:

  1. Start having conversations with your assistant using Talk to your bot (Interactive learning).
  1. Test happy path flows to sanity check that they work as you expect
  1. Add tests and run them on a continuous integration (CI) server

  2. Annotate the messages that are in the Annotate new data tab

  3. Commit and push NLU annotations to branch on remote Git repository

  4. Review and merge changes on Git repository

  5. Train a new model and make it active

  6. Repeat

Once you're happy with your bot, you're ready to start sharing it with test users.

Next, conversations with test users

Use Share your bot to invite your first testers to try out your assistant. In Rasa X, you'll be able to review their conversations and make improvements to your assistant.

Once you've reviewed conversations from test users, you'll have a list of improvements to make to your bot. Some, like fixing an incorrect NLU or Core prediction, are most easily fixed directly in Rasa X:

Some fixes, such as creating a new intent, or adjusting the logic of stories, can be done either in Rasa X or on the command line. Here's an example of how that might work in Rasa X:

If you need to do something more structural, like changing your config.yml or create custom actions, you can do this in a text editor on your local machine. After you've made changes, you can re-share your assistant with testers and repeat this process until you're ready to share with real users.

Finally, conversations with real users

The next step is to share your assistant with real users and iterate on areas for improvement you discover, just like you did above. Rasa Open Source makes it easy to connect a bot to a website or an external channel, such as Slack, Twilio, or Facebook Messenger. From there, share your assistant with real users and view all of the conversations in one place.

If you have any questions or want to learn more about Rasa Open Source and Rasa X, check out our docs. We always love seeing assistants built by members of our friendly Rasa Community, share what you've built with Rasa Open Source and Rasa X or submit it to be featured in our community showcase.