This reference architecture describes how to build an enterprise-grade conversational bot (chatbot) using the Azure Bot Framework. Each bot is different, but there are some common patterns, workflows, and technologies to be aware of. Especially for a bot to serve enterprise workloads, there are many design considerations beyond just the core functionality. This article covers the most essential design aspects, and introduces the tools needed to build a robust, secure, and actively learning bot.
Chatbots – also known as “conversational agents” – are software applications that mimic written or spoken human speech for the purposes of simulating a conversation or interaction with a real person. There are two primary ways chatbots are offered to visitors: via web-based applications or standalone apps. Today, chatbots are used most commonly in the customer service space, assuming roles traditionally performed by living, breathing human beings such as Tier-1 support operatives and customer satisfaction reps.
There are obvious revenue opportunities around subscriptions, advertising and commerce. If bots are designed to save you time that you’d normally spend on mundane tasks or interactions, it’s possible they’ll seem valuable enough to justify a subscription fee. If bots start to replace some of the functions that you’d normally use a search engine like Google for, it’s easy to imagine some sort of advertising component. Or if bots help you shop, the bot-maker could arrange for a commission.
Several studies accomplished by analytics agencies such as Juniper or Gartner  report significant reduction of cost of customer services, leading to billions of dollars of economy in the next 10 years. Gartner predicts an integration by 2020 of chatbots in at least 85% of all client's applications to customer service. Juniper's study announces an impressive amount of $8 billion retained annually by 2022 due to the use of chatbots.
How far are we from building systems with commonsense? One often-heard answer is: not in the near future, while the realistic answer is: we don’t know. Last year, I spent some time trying to build a system that can do better than an information retrieval baseline in taking fourth-grade science exam (which still has a ways to go to gain a passing score of 65%). I failed hard. Here’s an example to get a sense of the difficulty of these questions.
Interestingly, the as-yet unnamed conversational agent is currently an open-source project, meaning that anyone can contribute to the development of the bot’s codebase. The project is still in its earlier stages, but has great potential to help scientists, researchers, and care teams better understand how Alzheimer’s disease affects the brain. A Russian version of the bot is already available, and an English version is expected at some point this year.
However, if you’re trying to develop a sophisticated bot that can understand more than a couple of basic commands, you’re heading down a potentially complicated path. More elaborately coded bots respond to various forms of user questions and responses. The bots have typically been “trained” on databases of thousands of words, queries, or sentences so that they can learn to detect lexical similarity. A good e-commerce bot “knows” that trousers are a kind of pants (if you are in the US), though this is beyond the comprehension of a simple, untrained bot.
Simple chatbots work based on pre-written keywords that they understand. Each of these commands must be written by the developer separately using regular expressions or other forms of string analysis. If the user has asked a question without using a single keyword, the robot can not understand it and, as a rule, responds with messages like “sorry, I did not understand”.
The classic historic early chatbots are ELIZA (1966) and PARRY (1972). More recent notable programs include A.L.I.C.E., Jabberwacky and D.U.D.E (Agence Nationale de la Recherche and CNRS 2006). While ELIZA and PARRY were used exclusively to simulate typed conversation, many chatbots now include functional features such as games and web searching abilities. In 1984, a book called The Policeman's Beard is Half Constructed was published, allegedly written by the chatbot Racter (though the program as released would not have been capable of doing so).
Three main reasons are often cited for this reluctance: the first is the human side—they think users will be reluctant to engage with a bot. The other two have more to do with bots’ expected performance: there is skepticism that bots will be able to appropriately incorporate history and context to create personalized experiences and believe they won’t be able to adequately understand human input.
The evolution of artificial intelligence is now in full swing and chatbots are only a faint splash on a huge wave of progress. Today the number of users of messaging apps like WhatsApp, Slack, Skype and their analogs is skyrocketing, Facebook Messenger alone has more than 1.2 billion monthly users. With the spread of messengers, virtual chatterbots that imitate human conversations for solving various tasks are becoming increasingly in demand. Chinese WeChat bots can already set medical appointments, call a taxi, send money to friends, check in for a flight and many many other.
A basic SMS service is available via GitHub to start building a bot which uses IBM’s BlueMix platform which hosts the Watson Conversation Services. A developer can import a workspace to setup a new service. This starts with a blank dashboard where a developer can import all the tools needed to run the conversation service. The services has a dialog flow – a series of options with yes/no answers that the service uses to work out what the user’s intent is, what entity it’s working on, how to respond and how to phrase the response in the best way for the user.
Short for chat robot, a computer program that simulates human conversation, or chat, through artificial intelligence. Typically, a chat bot will communicate with a real person, but applications are being developed in which two chat bots can communicate with each other. Chat bots are used in applications such as ecommerce customer service, call centers and Internet gaming. Chat bots used for these purposes are typically limited to conversations regarding a specialized purpose and not for the entire range of human communication.
Chatbots can strike up a conversation with any customer about any issue at any time of day. They engage in friendly interactions with customers. Besides, virtual assistants only give a bit of information at a time. This way they don’t tire customers with irrelevant and unnecessary information. Chatbots can maintain conversations and keep customers on your website longer.
However, chatbots are not just limited to answering queries and providing basic knowledge. They can work as an aid to the teacher/instructor by identifying spelling and grammatical mistakes with precision, checking homework, assigning projects, and, more importantly, keeping track of students' progress and achievements. A human can only do so much, whereas a bot has virtually an infinite capacity to store and analyse all data.
Chatbots are often used online and in messaging apps, but are also now included in many operating systems as intelligent virtual assistants, such as Siri for Apple products and Cortana for Windows. Dedicated chatbot appliances are also becoming increasingly common, such as Amazon's Alexa. These chatbots can perform a wide variety of functions based on user commands.
Businesses are no exception to this rule. As more and more users now expect and prefer chat as a primary mode of communication, we’ll begin to see more and more businesses leveraging conversational AI to achieve business goals—just as Gartner predicts. It’s not just for the customer; your business can reduce operational costs and scale operations as well.
Getting the remaining values (information that user would have provided to bot’s previous questions, bot’s previous action, results of the API call etc.,) is little bit tricky and here is where the dialogue manager component takes over. These feature values will need to be extracted from the training data that the user will define in the form of sample conversations between the user and the bot. These sample conversations should be prepared in such a fashion that they capture most of the possible conversational flows while pretending to be both an user and a bot.
With last year’s refresh of AppleTV, Apple brought its Siri voice assistant to the center of the UI. You can now ask Siri to play your favorite TV shows, check the weather, search for and buy specific types of movies, and a variety of other specific tasks. Although far behind Amazon’s Echo in terms of breadth of functionality, Apple will no doubt expand Siri’s integration into AppleTV, and its likely that the company will introduce a new version of AppleTV that more directly competes with the Echo, perhaps with a voice remote control that is always listening for commands.
However, the revelations didn’t stop there. The researchers also learned that the bots had become remarkably sophisticated negotiators in a short period of time, with one bot even attempting to mislead a researcher by demonstrating interest in a particular item so it could gain crucial negotiating leverage at a later stage by willingly “sacrificing” the item in which it had feigned interest, indicating a remarkable level of premeditation and strategic “thinking.”
Dialogflow is a very robust platform for developing chatbots. One of the strongest reasons of using Dialogflow is its powerful Natural Language Understanding (NLU). You can build highly interactive chatbot as NLP of Dialogflow excels in intent classification and entity detection. It also offers integration with many chat platforms like Google Assistant, Facebook Messenger, Telegram,…
What began as a televised ad campaign eventually became a fully interactive chatbot developed for PG Tips’ parent company, Unilever (which also happens to own an alarming number of the most commonly known household brands) by London-based agency Ubisend, which specializes in developing bespoke chatbot applications for brands. The aim of the bot was to not only raise brand awareness for PG Tips tea, but also to raise funds for Red Nose Day through the 1 Million Laughs campaign.
Once you’ve determined these factors, you can develop the front-end web app or microservice. You might decide to integrate a chatbot into a customer support website where a customer clicks on an icon that immediately triggers a chatbot conversation. You could also integrate a chatbot into another communication channel, whether it’s Slack or Facebook Messenger. Building a “Slackbot,” for example, gives your users another way to get help or find information within a familiar interface.