For three years, our consultants at Tangowork 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.
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.
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.
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.
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.