When it comes to building on-premise chatbots, we choose Rasa without a second thought. It’s open-source and on-prem. What more can we ask? Well, that’s what we think, but only now.
The earlier versions of Rasa, we have to admit, were giving us a tough job:
No custom payloads#
Rasa threw in a few basic payload types like images, buttons and there was no option to add our own custom payload. For example, if you’re building a slack bot and you want to use the date picker element, Rasa was throwing an error for the custom payload. There were times when we spent hours on the documentation hoping that we could somehow add our custom payload, and we finally realized, it was impossible. It was a clumsy process involving the conversion of a JSON string into a JSON. Yes, very clumsy.
NLU + CORE + CORE-SDK: Handle all that.#
Two different commands to train the NLU and Core, one more command to run the actions server and the Rasa stack did not feel anything like a stack but a bunch of python packages that had different ways to be used and wouldn’t be compatible with the other. The simple task of starting Rasa servers was a Himalayan task.
There were quite a few problems arising because of the version conflicts across various dependencies. Some of the dependencies like NumPy could only work with python3. But many other packages had an issue with python3 and we had to revert back to python2.7 which was soon heading towards its EOL. This literally made us go dizzy! 🙆
There were a lot of issues we faced with the initial versions of Rasa and yet, we did not give up on them because we have always been a huge fan of open-source tools, written in Python and of course, On-prem. 💪
With the recent updates to the Rasa stack, it has become a walk in the park for us to build chatbots.
As of today, the recent version of Rasa is 1.2.5 which has almost completely eaten up the above-mentioned issues!
Good news: The Rasa stack has really improved and has become more developer-friendly than before.
How have the stories changed? Thankfully, we do not have to adopt a new story format. Rasa allows us to access default actions such as default_fallback instead of having to write a new utter_action and then including it to the FallBack policy.
🤘 Rasa NLU + Rasa CORE = Rasa#
Rasa NLU and Core (aka Rasa Stack) are now part of a single open-source framework: Rasa.
There’s one command to train the stack!
🌈 Start living on colors with the new Rasa X
Rasa X in. Terminal out!
Yup, you read that right. The newest addition to the open-source tools offered by Rasa is the Rasa X which is not a part of the Rasa Stack (It has nothing to do with NLU, CORE or training). It’s all about the UI. The Rasa X UI looks really pretty with the vivid purple color. You can train models with one click of a button, archive models that you do not need, write responses (the utter_actions can be modified here), modify the configuration, update stories on the go as you chat with your bot!
The coolest feature in this is that you can understand the user experience with the Talk to your bot option. You can see how the chat flow would look on a chat window.
☑️ The Interactive Learning mode#
From what was previously a painful task of using arrow keys to correct your bot by choosing the right intent and typing out entities, the Interactive Learning mode has become saint-like with the intents/action-dropdown to choose from. Honestly, we couldn’t have been happier with this new update :’)
💭 Conversations Tab#
The new conversations tab helps us take a look at previous conversations and even filter based on intents, entities or even confidence value. You just have to click on a message to see how your bot classified the user input into an intent and extracted the entities if any.
It doesn’t end here, we’ve got more! You can also share your Bot with test users now.
👫👭 Share your Bot#
Is your bot even ready without users testing it? Obviously not. Rasa X solves just that and gives us the option to test and correct conversations by sharing our bot with test users!
In the models/conversations tab, you can choose to share your bot by generating a link for your assistant for the particular model. By activating a different model and putting it to test, we can even compare the performance of each model by monitoring the bot replies from conversations!
🗣 Message and Voice Channels#
Rasa now allows for us to send not just a custom payload (that works) but also different payloads for different channels! Is your Bot integrated with Slack, Twilio or even your own website? No worries. Just include the channel credentials in the credentials.yml file and list down the channel-specific payload in the domain file. Your bot is now ready for any channel.
☃️ Save your models on Cloud Storage#
This is a very useful feature with which you can save your models on cloud storage like Amazon AWS, Google storage or Azure Storage. Start the Rasa server with the remote-storage option set to azure/aws/gcs to run from a machine elsewhere. Read here about how Rasa uploads/ accesses a model to/from the store.
And that’s how we got most of our feature requests fulfilled. 😇
That’s all the things we loved about the newest version of Rasa. Next up, we’ll see how to train and build a cool on-prem chatbot. Till then, ¡Adiós! 👋