Chatbot frameworks: A quick look at popular ones
In my two previous blog posts chatbots in HCM and chatbots for universities, I talked about the immense potential chatbots have in HR Tech and learning space. A quick Google search would show 100s of other areas where chatbots are relevant. It’s very likely that you have already seen a chatbot in action and are evaluating it for your business needs or you are already convinced that your business can benefit from chatbot. The next obvious question is how can one build a chatbot? One of the answers to this question is, by using bot development frameworks. These frameworks provide a standard way to build and deploy bots. A framework would generally provide SDK’s, connectors, NLP support, sample bots, deployment mechanism and etc. Hence using a framework enables faster development of chatbots. There are many frameworks available in the market; some of the names being api.ai, Wit.AI, Microsoft Bot Framework and Aspect CXP. Let us closely look at some of the existing and popular frameworks to understand their similarities and differences.
Parameter | Microsoft Bot Framework | api.ai | AWS Lex | IBM Watson Conversation |
Prerequisites | Visual Studio 2015/2017, Bot Framework Channel Emulator, NuGet package ‘Microsoft.Bot.Builder’ A Microsoft Account (Hotmail, Live, Outlook.Com). An Azure subscription. A communication service like Skype, Slack, or the web. | No pre requisites, can be implement with any language that supports REST such JavaScript, Node.js and etc | AWS Account, AWS Console or CLI | Bluemix account to get the API credentials for IBM Watson conversation service |
Available SDK & Libraries | C# .NET(LUIS), Node.js (SDK) and REST API | Android, iOS, Cordova, HTML, JavaScript, Node.js, C#.NET, Unity, Xamarian, C++, Python, Ruby, Java, Espon Moverio, Botkit and PHP | You can build bots using SDKs: Java, JavaScript, Python, CLI, .NET, Ruby on Rails, PHP, Go, and CPP | Node SDK, Java SDK, Python SDK, iOS SDK, Unity SDK |
Natural language understanding (NLU) | Language Understanding Intelligent Service (LUIS) is available. This enables developers to build an application which understands natural language and respond accordingly to user messages. | Api.ai is itself a NLU service. It relies on entities, utterances and intents to for natural language processing. | Powered by the same technology as Alexa, Amazon Lex provides ASR(Automatic Speech Recognition) and NLU(Natural Language Understanding) technologies to create a Speech Language Understanding (SLU) system. Through SLU, Amazon Lex takes natural language speech and text input, understands the intent behind the input, and fulfils the user intent by invoking the appropriate business function. | IBM Watson conversation service has built in natural language processing with the help of intents entities and dialog flow defined while designing the bot |
Integration Channels | Bing, Cortana, Skype, Web Chat, GroupMe, Facebook Messenger, Kik, Slack, Telegram, Direct Line and Twilio. | Microsoft Cortana, Facebook Messenger, Skype, Slack, Telegram, Amazon Alexa, Twitter, Kik, Line, Cisco Spark, Cisco Tropo, Twilio and Twilio IP | Facebook, Twilio and Slack. | Slack, Facebook, Twilio |
Components | 1.Bot Builder SDK 2. Developer Portal 3. Bot Directory | One can use UI of api.ai Create custom UI and communicate using REST | AWS SDK has components to build for its UI | One can integrate with .Net, mobile app or use node.js app in bluemix to bind with the conversation service |
Deployment Process | One can host the bot on any available service, such as Azure. If the bot is created using Bot Builder SDK for .NET, it can be directly deployed from Visual Studio. | For the purpose of a basic bot one can use the api.ai UI and basic messages configured in the service for deployment. The other method is hosting the UI and the webhook on a server. | With Amazon Lex, you can build, test, and deploy your chatbots directly from the Amazon Lex console. | API credentials are given once we create the conversation service which are used to consume the Watson conversation APIs |
Language Support | English, French, Italian, German, Spanish, Korean, Brazilian, Portuguese, Japanese | English, French, Dutch, Russian, Ukranian, Italian, German, Spanish, Korean, Brazilian Portuguese,Traditional Chinese, Simplified Chinese, Portuguese, Japanese | Presently, Amazon Lex is limited to support of US English. | Brazilian Portuguese, English, French, Italian, Spanish, German, Traditional Chinese, Simplified Chinese, and Dutch. Arabic is supported through the use of the Conversation API but not through the tooling interface. |
The above table just gives a glimpse of the frameworks, there’s a lot more to explore. The choice of framework would be driven by the needs such as integration need, technology preference, existing system and its design, NLP requirements, and time to market. For example,
- For server-less bot you can choose Amazon Lex using Amazon Lambda, or if you have a system deployed on AWS using its different services as AWS MobileHub, Amazon Cognito, DynamoDB, AWS connect or may be Alexa then Amazon Lex will be your choice as it offers easy integration.
- If your system is having highly sensitive data then IBM Watson premium plan offers higher level of security and isolation of data and hence using the IBM Watson Conversation Service can be your choice. Also IBM Watson is built on neural network so if that is your requirements then it is a good choice.
- If you want the application with not much complex system one can simple use api.ai with the help of REST APIs.
- If you want to support many languages as Italian, French, German, Spanish, Korean, etc, then AWS Lex cannot be the choice. Similarly, if multiple messengers are required, then IBM Watson Conversation or AWS Lex cannot be the choice.
The chatbot has recently caught the spotlight and we should expect more and more sophisticated tools coming into market and rule the space as mobile apps have done in the last decade.
To browse our other blogs on chabots, kindly visit these links: