For three years we built chatbots on the Microsoft Bot Framework. We built an entire platform for powering chatbots that looked and functioned beautifully. But two issues kept coming up:
- Privacy. How do we keep user conversations completely confidential?
- Context. How do we build a bot that understands not just the words, but the context?
We switched to Rasa to solve these problems and couldn’t be happier with our decision.
The cloud makes many clients uncomfortable
Despite the explosion in cloud computing, many organizations are uncomfortable putting their data on the cloud. We’ve found this is especially true in government, finance, and insurance. And Canadian and European organizations are particularly uncomfortable hosting anything in the United States.
With the Microsoft Bot Framework, we were sending every scrap of data, every user utterance, to Microsoft. Although I generally trust that Microsoft has good intentions, the data was clearly out of our control. I couldn’t confidently make any assurances to my client about exactly where their data would be hosted or how it would be used.
Rasa is open source and installs anywhere
I first heard about it, ironically, on a LUIS blog post in 2017 (LUIS is Microsoft’s natural language understanding service). In independent testing, LUIS and Rasa were neck-and-neck on language comprehension performance, outperforming Watson and API.ai (now Dialogflow).
But unlike its competitors, Rasa is open source. You can install it on your laptop, or in your data center, or on your private cloud. It’s fast, stable, and has been downloaded 1.5 million times. Significantly, Accel is their lead investor, and Accel knows how to spot winners: their past Series A investments include Facebook, Atlassian and Dropbox.
Bots that don’t understand context seem stupid
Our other issue with the Microsoft Bot Framework in general, and LUIS in particular, is the lack of contextual understanding.
Without context, AI assistants are frustratingly limited. Consider how important context is in a conversation like this:
me: can you suggest a restaurant?
bot: i'd recommend Di Beppe at 8 West Cordova Street!
me: any other suggestions?
bot: What would you like suggestions for? Restaurants or hotels?
me: uh… restaurants?!
You can’t easily build contextual understanding using anything from Microsoft Cognitive Services. They have a “Labs” product called “Project Conversation Learner” that promises to handle it, but there’s no word if and when it will be released in Preview, let alone in general availability.
You could build a rules engine or use entity recognition with memory management, but it’s going to get really complicated really quickly. The best solution would be an engine that could predict the next best action based on the previous conversation history — which is exactly what Rasa does.
Rasa understands context
The Rasa natural language understanding engine uses the conversation history to determine what the user means. In the following video, I demonstrate how to set up a Rasa bot that understands context — in about 5 minutes.
Using Rasa X to build a bot that understands context, in about 5 minutes
Rasa refers to this as a “Level 3” Contextual AI Assistant. As you might expect, it takes a lot of training to teach the chatbot how to correctly interpret the context. That’s why they introduced Rasa X, a tool for quickly training a chatbot based on real conversations. In the following video, I use Rasa X to deepen a bot’s understanding.
Using Rasa X to train the bot to understand more
Rasa doesn’t see “Level 3” bots as the end goal. Their vision includes “Level 4” Personalized AI Assistants, and the ultimate “Level 5” Autonomous Organization of Assistants. I don’t know when (or if) they’ll realize a “Level 5” chatbot, but I love that they know where they’re headed.
We’re Rasa consultants now
We liked many aspects of the Microsoft Bot Framework. But the lack of privacy guarantees and the lack of contextual understanding were ultimately deal-breakers for us.
So now we’re full-on Rasa consultants! We’ve developed a custom Docker image for our Rasa projects that runs on a private cloud, uses Contentful as a headless chatbot CMS, extends the functionality of Rasa’s Messenger connector, and emulates everything we had with the Microsoft Bot Framework — plus our data is private and our bots understand context.
me: can you suggest a platform? bot: for what? me: an AI assistant bot: Try Rasa. me: why? bot: It understands context, and it runs on your systems. me: perfect.