The Rasa Open-Source Framework

In our last blog, we looked at the popularity of publicly available NLU engines from Google, Amazon, and IBM and how they are powering conversational interfaces and chatbot solutions that are being used to service customer engagements. We compared the most popular of these – Google’s Dialogflow and Amazon’s AWS Lex – to the popular open-source framework Rasa and examined the tradeoffs between the ease of getting started with Google and Amazon versus the transparency and control provided by Rasa as well as (with enough time and effort) the superior results it can provide.

And therein lies the dilemma – Rasa is powerful and complex but not easy for casual developers and newcomers to NLU/NLP to get started. Rasa is an open-source machine learning framework to automate text- and voice-based conversations. Developers can access tools to build, improve, and deploy text-and voice-based chatbots and assistants. It has additional capabilities beyond the natural language understanding features of DialogFlow and Lex because it is better at maintaining context which is crucial to natural language conversations i.e. the ability to string words and sentences into a meaningful conversation that ebbs and flows and doesn’t always follow a straight-line path.

The Limitations of Rasa

Here is what we found as we first started to use the Rasa Core open-source product:

  • Rasa can be difficult to deploy. It runs best on Linux and needs a Python development environment to operate. It has a lot of dependencies and can be difficult to configure, especially for first-time users. It is generally installed on a developer’s local machine – which if you run Windows or Mac, is not easy to do. There is a whole lot of time spent in “dependency hell” to get it installed and running.
  • Rasa can be difficult to configure. It contains a sequence of components, called pipelines which are used to process the incoming message and allow the user to customize their model and fine-tune the dataset. The developer has granular control of these pipelines, which together with the model itself can lead to lots of permutations and combinations to achieve an optimal result. This is the power of the Rasa framework but also the elements that add to the complexity of configuring and tuning the model.
  • Rasa was not designed for production. It is first and foremost a developer tool and very little through has gone into how it can move from development into production. End-user testing of the model means building your own chat interface and allowing third-party testers access to the developer’s machine to test. Not exactly the most secure or scalable configuration for enterprise-grade software.
  • Rasa can be difficult to maintain. Like many popular open-source projects, Rasa has a fast-moving code base that often overwhelms data scientists and AI engineers who have just managed to tune their model when a new version is released and the dance begins all over again. Maintaining and comparing versions of the software, the pipelines, and the data model is something that each developer has to do for themselves.

Introducing to Overcome Rasa Limitations

But like many others, we are big fans of Rasa and its potential and we set out to solve many of these problems and make it easier for developers to get started, use the product and move it ultimately to production.

What is provides a development and hosting environment to deploy, train, and scale your Rasa Core applications from the cloud. And it’s FREE to get started – because we also want to provide something back to the community.

Eight Ways that can help offers a set of features that overcome some of the problems outlined previously but also provide other features that we found really useful in developing our own applications and taking them from concept to production. Here are 8 ways in which helps:

  1. It allows the developer to get up and running in minutes without the need for a powerful developer workstation that runs Linux and needs a Python environment. (You are welcome, MAC and Windows users!).
  2. It takes the pain out of installing and configuring the dependencies for a Rasa instance – removing “dependency hell”
  3. It accelerates training by using a more powerful compute than a traditional desktop or laptop, streams training logs back to your laptop & provides an archive of previous training results.
  4. It makes it easy to compare models and pipelines and monitor the changes and results over time. (This can be a big issue for data scientists who often toil away without the ability to show the boss their results)
  5. It also makes it easy to track improvements in Rasa versions and allows you to compare different versions and pipelines over time.
  6. Once you have your model ready for end-user testing, we make it easy to add a chat interface and provide end-users access to your model for testing purposes without the need to access your personal desktop or laptop.
  7. In addition to dev/test environments, the cloud platform can host staging and production instances that can scale up or down according to your needs and we make it really easy to push-to-production.
  8. The platform automatically takes care of backups, operational resilience and scaling so you don’t have to worry about it.

Other features like A/B testing, compatibility testing, operational metrics for tracking accuracy and confidence over time, lifecycle management, and a host of other ideas are in the design phase and will be coming soon.

How to access

Access to the fully hosted environment is through a command-line interface directly from your laptop. With just a few clicks on the website, you can be up and running, safely accessing a fully hosted instance of Rasa Core without all the headaches and concerns. Try it out and tell us what you think – that’s the only way we can make a great product easier and safer to use for you.