Chatbots are in the spotlight this year. Tech giants like Facebook and Microsoft have already released extensive bot frameworks and intend to mass produce chatbots.
What Are Bot Frameworks?
Simply explained, a bot framework is where bots are built and where their behavior is defined. Developing and targeting so many messaging platforms and SDKs for chatbot development can be overwhelming. Bot development frameworks abstract away much of the manual work that's involved in building chatbots. A bot development framework consists of a Bot Builder SDK, Bot Connector, Developer Portal, and Bot Directory. There’s also an emulator that you can use to test the developed bot.
Bot Frameworks vs. Bot Platforms
The term "bot framework" is sometimes wrongly used interchangeably with "bot platform." If we are developing an application, the bot platform provides a base to deploy and run the application, where as a bot framework helps develop and bind together various components of the application. Bot platforms are online ecosystems where chatbots can be deployed, interact with users, and perform actions on their behalf (like interacting with other platforms). A bot development framework is a set of predefined functions and classes used to speed up development. It gives you a set of tools that help you write code better and faster.
Most Popular Bot Frameworks
Let's take a look at the most popular bot frameworks: Facebook Bot Engine, Microsoft Bot Framework, API.ai, Aspect CXP, and Aspect NLU.
Facebook Bot Engine
In April 2016, Facebook created Facebook Bot Engine, which is based on Wit.ai technology. Wit.ai runs from its own server in the cloud. The Bot Engine is a wrapper built to deploy the bots in the Facebook Messenger platform.
Extract certain predefined entities like time, date, etc.
Extract user intent.
Define and extract entities.
Microsoft Bot Framework
Just like Facebook’s offering, Microsoft’s SDK can be viewed as two components that are independent of each other:
Bot Connector, the integration framework.
LUIS.ai, the natural language understanding (NLU) component.
The Microsoft Bot Framework’s integration component is impressive. It can be integrated with Slack, Facebook Messenger, Telegram, Webchat, GroupMe, SMS, email, and Skype. Also, there is a PaaS option on Azure just for bots. Microsoft Bot Framework is a comprehensive offering to build and deploy high-quality chatbots.
API.ai is built on the following concepts:
Agents: Agents corresponds to applications. Once we train and test an agent, we can integrate it with our app or device.
Entities: Entities represent concepts that are often specific to a domain as a way of mapping natural language processing (NLP) phrases to approved phrases that catch their meaning.
Intents: Intents represent a mapping between what a user says and what action your software should take.
Actions: Actions correspond to the steps your application will take when specific intents are triggered by user inputs.
Contexts: Contexts are strings that represent the current context of the user expression. They're useful for differentiating phrases that might be ambiguous and have different meanings depending on previous events.
Aspect CXP and Aspect NLU
Aspect Customer Experience Platform (CXP) is a platform for designing, implementing, and deploying multichannel customer service applications. Aspect NLU is a component that gives a sense of human language. This allows scaling through automation. Aspect CXP makes it easy to design, implement, and deploy customer service applications across multiple communication channels like text, voice, mobile web, and social media networks. It would be a good fit where we need to produce complex chatbots, customer service applications, and enterprise software. And it would be a poor fit for simple bots, embedded applications, and IoT applications.