Machine Learning and AI
Battle of the Bots: Rasa vs Google Dialogflow vs AWS Lex
At Ideas2IT we frequently develop chatbots for our customers. Before starting each project we evaluate which chatbot platform to build on as there are many compelling choices and it is a moving target as the platforms keep evolving.
We recently evaluated Rasa vs Google DialogFlow vs AWS Lex. Here is our conclusion and the reasons behind it. Spoiler alert, we went with Rasa!
Rasa is an open-source Machine Learning (ML) framework for building chatbots. It supports both text and voice-based conversations. It can connect to messaging channels like Facebook, Slack, etc., and APIs.
Rasa also has an additional component called Rasa X, which helps in improving the chatbot using real conversations and also helps in building a chatbot.
There are a lot of frameworks and platforms to build a chatbot. The basic features are common in all the frameworks. Considering features and customization, in our opinion, Google Dialogflow and Rasa works better.
Rasa has a concept of a pipeline for this. They have added a recent state-of-the-art model – Bidirectional Encoder Representation from Transformer (BERT) into the pipeline which helps in developing better models. Rasa also provides an additional advantage of adding our own custom model into the pipeline for any task.
While Dialogflow from Google is a solid platform with good models and pre-trained entities, but it does not support custom models. The same goes for Lex.
For the conversation flows, Rasa uses a transformer model (recent state-of-the-art model) and it’s based on the data or conversation flow given. In this way, we can create our own flow in a more generic manner.
In Dialogflow, conversations are driven by the context provided for intents (their own dialogue management), which is somewhat rule-based and not as flexible.
Since Rasa is open-source, we can evaluate the model and configure it based on our needs.
In Dialogflow or Lex, models are a black box, where we don’t have any option of improving or evaluating the models.
In Rasa, any external API can be integrated, like SQL, graph db or our own API to keep up the conversation.
Dialogflow or Lex also provides API integration but Rasa additionally supports the Knowledge graph integration which is more useful in having a better conversation.
Rasa provides language support using the pipeline concept since it is more customizable, we can add our own component to support multiple languages.
Dialogflow supports multiple languages as an inbuilt feature, but Lex currently supports only US English.
It can be deployed in the cloud and also on-premise.
Lex and Dialogflow are cloud-based platforms.
Rasa provides a lot of customization, in terms of business logic to be implemented, model, deployment and integration. Rasa provides its SDK where you can implement your own custom logic.
Dialogflow and Lex don’t provide any kind of customization based on business needs, only the training data and the input rule-based dialog flow can be customized.
There is an enterprise version in Rasa which provides additional features like Analytics, Expert support, Role-based access control, etc.
Dialogflow has a Freemium version and also an Enterprise version. In the enterprise version, it supports Text to Speech/Speech to Text features, Sentiment analysis feature, etc.
With Lex, it’s pay for what you use. The pricing is based on the number of requests.
Rasa has more than 8.5k GitHub stars with 300+ contributors, provides consistent and stable releases every month.
Rasa also has good documentation, video tutorials, and examples for anyone to get started. They have a separate forum to resolve any issues and also a blog page to explain their features.
Rasa supports a diverse range of industries like Healthcare, Insurance, Travel, HR, Banking, Telecom, and a lot more.
Companies like HCA healthcare, Helvetia Insurance, Adobe, Orange SA telecom, Raiffeissen Swiss bank, Engie Utilities use Rasa to create their AI assistants.
Recently Rasa has added support for Tensorboard 2. Tensorboard is used to visualize training metrics on top of Tensorflow. It helps to understand if the model has been trained properly and you can make changes to your hyperparameters based on the metrics to improve your model.
Rasa has announced that it has raised $13 million in a Series A round of funding led by Accel, with participation from Basis Set Ventures, Greg Brockmon (co-founder & CTO OpenAI), Daniel Dines (founder & CEO UiPath) and Mitchell Hashimoto (co-founder & CTO Hashicorp).
Cons of Rasa
- The initial setup of rasa is tedious and a lot of installations are required
- Knowledge of python and how conversational chatbot works is required
- Though there is flexibility in deployment, one should have knowledge about the deployment process
Google Dialogflow and Rex help you building a chatbot easily and it does not require any knowledge of AI. But If you want to have a wide range of customizations and more control over how you build your chatbot, Rasa would be the better option.