To build a chatbot, I ended up looking into different conversational bot frameworks. Botkit and Api.ai (now Dialogflow) are the two obvious ones. They both support Cisco’s collaboration platform Cisco Spark and can also be used from an webapp using their respective REST APIs. But soon I realized their limitations.
Botkit is a rule-based framework. In a rule-based framework, developers need to create the interaction logic – how the incoming chat messages will be interpreted and what will be the typical set of responses. So essentially, Botkit in an itself doesn’t provide any Machine Learning capabilities. And you have to keep creating rules even for simple applications. These type of frameworks are good for quick prototype but not for large scalable systems. As of May 2017, Botkit added the capability that integrates Botkit Studio with Microsoft’s Natural Language Processing engine Microsoft LUIS. The integration of Botkit and LUIS serves my purpose, i.e; using a true Natural Language Processing engine but that leads to the next problem – working with a cloud-based NLP service.
Api.ai, Microsoft LUIS, Amazon Lex etc. are cloud-based NLP services for conversational AI. They are quick to get started without worrying much about NLP or Machine Learning details. But there are couple of reasons I didn’t want to go with them. First – I didn’t want to upload my data to those cloud services. Second – I wanted to have control over the NLP techniques that I use in my chatbot and finally I wanted to have more control over the functionalities of my bot rather than the common functionalities offered by the cloud-based NLP services.
In short I was looking for below characteristics in the chatbot framework
- Not rule-based or cloud-based NLP
- Has web/REST API support so I can use it from an webApp, not just on a 3rd part platform like Slack, Facebook etc.
- Supports Python but Node.js is cool too
- Allows me the ability to customize
- Open source is a huge plus
MindMeld serves most of the above purposes and I am using it in my work at Cisco. But I also wanted to look into what else is out there. I stumbled upon Rasa.ai – an open source conversational AI for enterprise. Rasa seems to be pretty similar to MindMeld – although I need to take a deeper look into Rasa’s NLP capabilities. What fascinates me about Rasa is the fact that they are an enterprise scale open source solution – a developer paradise!
I also came across ChatterBot. It seems to be a rule-based engine based on this chatbot platform comparison table. Although Chatterbot has the capability to add your own corpus to train the bot. A closer look is needed to decide on its NLP capabilities.
Until then, stay tuned!
Next: Deep Dive into Rasa.ai – An Open Source Conversational AI for Enterprise
Thanks to Karthik for sharing his deep insights into MindMeld platform.