What-it-takes-to-build-a-Chatbot_simplicity-creation

A Comparative Analysis of ChatBots APIs

 

Chat-bots are Conversational Artificial Intelligence tools which are capable of performing the duties of a human being such as replacing personal assistant and taking care of many manual tasks like booking tickets, managing calendars, placing food orders, making reservations etc. These have helped solve myriad business problems across many industries such as E-Commerce, Banking, Healthcare,  Legal, Telecom, Logistics,  Travel, Retail, Auto, Leisure, Finance, Sports, Insurance, Entertainment, Media and many others and help you save time and increase efficiency. Chat-bots can usually interact through speech and text. Text-based chat-bot communicates via conventional conversation i.e. text messages.

Melaju-cepat-dengan-chatbot-01

How does a Chat-bot work?

Chat Bots are built using machine learning and artificial intelligence algorithms and NLP concepts. AI helps induce human intelligence into Chat-bots. Machine Learning (ML) is a branch of AI which lets Chat-bots learn based on their experience of their interaction with the environment and users. Natural Language Processing (NLP) helps Chat-bots contextually understand the human inputs.  So a chat-bot typically accept and interpret the input and provide a relevant response to the output. This might seem simple on the surface but is very complicated in practice.

Interpreting the input:

In order to understand what the user said, bot uses pattern matching of user input and classification of the intents with Natural Language Processing (NLP). Pattern matching is simple and easy but still hard to maintain with flexible inputs at a large scale. Extraction of intent from what is being said is done using machine learning to interpret the inputs and is harder to implement. Here comes the concept of entities, intents, and actions.

Entities are specific mappings of the spoken word combinations in the human discourse to standard phrases explaining their meaning. Intents are the prediction of workflow and map the user input to a corresponding bot action. Actions are the steps that bot is capable of performing as a result of an intent. This can also be seen as key/value mapping i.e. keeping track of current implications of entities and differentiating the meanings/intents of phrases.

C-l8QQhXcAA0ZQC (1)

Preparing for output:

We have had a look at a bot’s language comprehension method, let’s see what is the typology of bots when it comes to responding to an input. Chatbots are purpose built and their way of responding differs from each other. A bot can either be strictly specialized in one domain known as the closed domain bot, e.g. weather forecasting or could just be a general conversationalist known as an open domain bot.

Responses of Chatbots can be of two types. They either retrieve the predefined response for the user or will generate the response corresponding to the input.

A retrieval based response can either be static or dynamic. A static response is more like a template filling, where to every input, the machine has a corresponding answer and Dynamic response is knowledge-based, it returns the list of possible responses with the scoring of relevance. The machines answers with the response which has the best score.

This has to be kept in mind that closed domain bots are only designed only to handle a finite set of queries and we cannot engage in general conversations with these. Open domain bots, on the other hand, are mainly focused on imitating real-life conversations which can be about any topic. They do not need to have a clear understanding of what the input is so they do not retrieve entities and intents, nor do they need to keep track of the context. Their basic focus is to entertain or to answer general FAQ-style questions.

Chatbot-categorization

Difference between the Bot Frameworks and Bot Platforms?

The two terms Bot platform and bot framework are often confused with each other. A Bot Platform provides a base to deploy and run the bot application. Whereas A Bot Framework helps developers build and integrate various components in their bot application. Bot Development framework is a set of predefined functions and classes which makes development fast. Simply put, Beginners or non-technical people can develop bots without coding through Bot platform while Developers and coders use bot development frameworks to build bots from scratch using programming language allowed by the framework.

Bot platforms offer a toolkit to allow users to rapidly create robust bots, deploy it on the messaging platforms available and connect it to APIs but they have limited functionality and very little or no features of NLP. They can be seen as online ecosystems where chatbots can be deployed and interact with users, perform actions on their behalf and interact with other platforms. We have enlisted a few popular chatbot platforms with their pros and cons.

5 popular non-programming bot platforms 

Chatfuel

Anyone with no knowledge of coding can create his/her own bot on Facebook Messenger using Chatfuel. Its features include simple drag-and-drop, adding content and sharing it automatically, gathering information inside Messenger chats with forms and let users request info and interact with the bot with buttons. It is completely free to make a bot on the chatbot platform however advanced features come with a price. Many multinational companies like Adidas, MTV, British Airways, Volkswagen etc are using Chatfuel for their Facebook Messenger chatbots and currently, 46000+ chatbots are using chatfuel.

Botsify

Using botsify’s custom templates along with drag-and-drop functionalities, easy integrations via plugins, Smart AI, Machine learning and analytics integration features, anyone can create bots on Facebook Messenger, WhatsApp, and Instagram without writing a single line of code. Even the free version comes with 20 templates. The number increases as you upgrade. Botsify provides human takeover ability for a smooth transition from a bot to a human, and users can make use of emojis in their conversations. The botsify platform is free for one bot and payable thereafter. According to an estimation, more than 40000 bots are using it. Famous companies using botsify are Apple, Shazam, Grin, Travelex, RemoteInterview, Unicef NZ

Flow Xo

Flow Xo lets users run and test the functionalities of their bot with built-in test console. Its the only chatbot platform to provide over 100 integrations and offers templates and tools to create talking bots for WhatsApp Web, Facebook Messenger, Slack, Telegram, Twilio SMS. Using Flow XO users can build bots once for many platforms. With pre-built templates for a quick start, it helps save a lot of time. Its free version is limited to a certain number of conversation. A subscription has to be made for further use.

Kitt.AI

Kitt.AI equipped with hot word detection, natural language understanding, semantic parsing, a conversational engine, and a neural network-powered machine learning model and a drag and drop interface. KITT. AI supports use cases like home automation and commerce and can be integrated with web and mobile apps. It can be utilized to build standalone chatbot for Alexa, Facebook Messenger, Kik, Skype, Slack, Telegram, Twilio.

ManyChat

ManyChat is popular among marketers because of its growth tools that help in converting anyone into a subscriber. Developing a ManyChat bot is like creating an email workflow or sequence. Users can broadcast content or create a flow-based communication. It is free for up to 500 subscribers and then starts its a paid plan from $10/month.

6 Prominent Bot Frameworks

 

Microsoft Bot Framework

MicroSand Facebook Bot framework were declared at almost same times. Microsoft’s SDK can be viewed as 2 components, which are independent of each other.

  1. Bot Connector, the integration Framework
  2. Language Understanding Intelligent Service, the natural language understanding component

The Microsoft Bot Framework 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 good quality of chatbots for users to enjoy their favorite conversation experiences Users can enjoy. It offers SDKs for multiple computer languages, Usage of existing directory, Prebuilt entities, Machine learning speech to text capabilities and its multi lingual.

Drawbacks:

  • The code is very complex and can not be used easily for large applications.
  • Its highly dependent on Microsoft services and can not be hosted on non-Microsoft platforms.
  • Development can only be done on either Node.Js or C# platforms.

Dialogflow

Previously known as Api.ai, DialogFlow is a cloud-based bot development framework acquired by Google in 2016. Dialogflow eliminates the headache of how to import, extract, install, and distribute bundled chatbots. Its SDKs support many programming languages such as Node.js, Ruby on Rails, Android, iOS, C#, Python, Xamarin [3], .NET, and more. The bot can easily be embedded with Facebook, Messenger, Telegram, Viber, Kik, Slack, Cortana, Twitter, Twillio, and Cisco Spark with one click channel integration. It lets developers connect to support systems such as Github, Community, Forum, and Email to allow them to draw on other’s expertise.

Dialogflow has machine learning backed training that checks user requests, helps to identify the need, and match that with an intent. This allows for error identification and change approval in real time, making it fast, efficient, and easy. It has 33 pre-built agents, it’s multilingual, supporting 15 languages and machine learning text to speech capabilities.

Drawbacks:

  • Documentation & tutorial bank is not very satisfactory.

IBM Watson conversation:

Watson is the pioneer and one of the most popular cognitive cloud service in the fields of artificial intelligence, machine learning, natural language processing & reasoning, speech recognition, sentiment analysis, and conversing. IBM has brought the power of that supercomputer into a cloud creating a broad platform to help master countless tasks through IBM Watson conversation.

It is also quite expensive (around 2 cents per API call) and thus is not a very good beginner’s tool. It is better to consider IBM Watson as a working solution if the use case for it in the company will be broad and finitely defined. Other advanced features include 360- degree speech to text, text to speech question and answer, Visual recognition security, Omnichannel deliver, Automated predictive analysis, Tone analyzer, WordPress plug-ins, Multilingual (10 current languages) and a Language Translator.

It also allows its users to make a chatbot in Watson conversation without writing the code while being able to take advantage of the cognitive capabilities. Watson has an expansive Software Development Kit (SDK) for multiple programming languages including Java, Python, iOS, and Node. It supports Multiple conversation channels and REST API which makes it more acceptable and compatible.

Drawbacks:

  • Watson conversation is quite expensive compared to Dialog flow & Amazon Lex
  • So many features and it’s rather puzzling to choose what to use

Wit.AI

According to a study, Wit.AI is trusted more than any other bot-building platform by developers. In April 2016, Facebook realized Facebook Bot Engine 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 Facebook Messenger platform so as a social media network with a huge user base, Facebook does not need other Bot development platform. They can use Wit.AI and stay bound to Facebook Messenger. Facebook is adopting an advanced strategy with the Facebook Bot Engine to offer their developers a variety of specialized chatbots. It relies on Machine Learning. Anyone can feed the Bot Framework sample conversations and it can handle many different variations of the same questions.

By April 2017, it had been used by 100,000 developers. Wit.ai allows using entities, intents, contexts, and actions, and it incorporates natural language processing (NLP). It is available for developers to use with iOS, Android, Windows Phone, Raspberry Pi, Python, C, and Rust; it also has a JavaScript plugin. Wit.ai supports about 50 languages, and it is free.

API.ai

API.ai is a web-based bot development framework. API.ai allows multiple utterances of intents and entities. Android, iOS, Webkit HTML5, JavaScript, Node.js, Python, etc. are the SDKs and libraries that API.ai provides for bot development. It works on the following principles.

  1. Agents: Agents corresponds to applications. Once an agent is trained and tested, it can be integrated with the app or device.
  2. Entities: Entities represent concepts that are often domain specific like mapping NLP (Natural Language Processing) phrases to approved phrases that catch their meaning.
  3. Intents: Intents represents a mapping between what is being asked by the user and what should the machine do.
  4. Actions: Actions correspond to the steps the applicant will take when the user triggers through inputs.
  5. Contexts: Contexts are strings that represent the current context of the user expression.  This is useful for differentiating phrases which might be ambiguous and have different meaning depending on what was spoken previously.

API.ai can be integrated with many popular messaging, IoT and virtual assistant’s platforms. Some of them are Actions on Google, Slack, Facebook Messenger, Skype, Kik, Line, Telegram, Amazon Alexa, Twilio SMS, Twitter, etc.

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 which gives the sense of human language. The approach adopted by Aspect NLU thoroughly differs from Wit.aiAPI.AI, and Microsoft Bot Framework. Aspect NLU brings the human-like conversational tone to self-service dialogues on Facebook Messenger. This allows scaling through automation, with a robotic feel of chatbots. Aspect CXP makes it easy to design, implement and deploy customer service applications like chatbots across multiple communication channels like text, voice, mobile web, social media networks like Twitter, Facebook, etc. 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, IoT applications.