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.

Conversational bots “live” online and give customers a familiar experience, similar to engaging an employee or a live agent, and they can offer that experience in higher volumes. Conversational bots offer scaling—or the capability to perform equally well under an expanding workload—in ways that human can’t, assisting businesses to reach customers in a way they couldn’t before. For one, businesses have created 24/7/365 online presence through conversational bots.


This chatbot aims to make medical diagnoses faster, easier, and more transparent for both patients and physicians – think of it like an intelligent version of WebMD that you can talk to. MedWhat is powered by a sophisticated machine learning system that offers increasingly accurate responses to user questions based on behaviors that it “learns” by interacting with human beings.
To inspire the next generation of explorers, NASA reaches out to students in schools, community organizations, and public events. A star robotic ambassador is “Rov-E,” a close replica of real NASA Mars rovers. Through Amazon Lex, NASA staff can now easily navigate Rov-E via voice commands -- an effective conversational interface when speaking with large crowds. Multi-turn dialog management capability enables Rov-E "to talk,” answering students’ questions about Mars in an engaging way. Integration with AWS services allows Rov-E to connect and scale with various data sources to retrieve NASA’s Mars exploration information. 

Developed to assist Nigerian students preparing for their secondary school exam, the University Tertiary Matriculation Examination (UTME), SimbiBot is a chatbot that uses past exam questions to help students prepare for a variety of subjects. It offers multiple choice quizzes to help students test their knowledge, shows them where they went wrong, and even offers tips and advice based on how well the student is progressing.
If your interaction with a conversational bot is through a specific menu (where you interact through buttons but the bot does not understand natural language input), chances are you are talking to a bot with structured questions and responses. This type of bot is usually applied on messenger platforms for marketing purposes. They are great at conducting surveys, generating leads, and sending daily content pieces or newsletters.
Poor user experience. The bottom line: chatbots frustrate your customers if you are viewing them as a replacement for humans. Do not ever, ever try to pass of a chatbot as a human. If your chatbot suffers from any of the issues above, you’re probably creating a poor customer experience overall and an angry phone call to a poor unsuspecting call center rep.
Natural Language Processing (NLP) is the technological process in which computers derive meaning from natural human inputs. NLP-Based Conversational Bots are machine learning bots that exploit the power of artificial intelligence, which gives them a “learning brain.” These types of conversational bots have the ability to understand natural language, and do not require specific instructions to respond to questions as observed in types of chatbots such as Scripted and Structured Conversational Bots.

The idea was to permit Tay to “learn” about the nuances of human conversation by monitoring and interacting with real people online. Unfortunately, it didn’t take long for Tay to figure out that Twitter is a towering garbage-fire of awfulness, which resulted in the Twitter bot claiming that “Hitler did nothing wrong,” using a wide range of colorful expletives, and encouraging casual drug use. While some of Tay’s tweets were “original,” in that Tay composed them itself, many were actually the result of the bot’s “repeat back to me” function, meaning users could literally make the poor bot say whatever disgusting remarks they wanted. 

The components of this infrastructure need to be networked and monitored by a dedicated Electrical Power Monitoring System (EPMS) to help avoid downtime or understand what … Continue Reading...
Clare.AI is a frontend assistant that provides modern online banking services. This virtual assistant combines machine learning algorithms with natural language processing. The Clare.AI algorithm is trained to respond to customer service FAQs, arrange appointments, conduct internal inquiries for IT and HR, and help customers control their finances via their favorite messaging apps (WhatsApp, Facebook, WeChat, etc.). It can even draw a chart showing customers how they’ve spent their money.
This was a strategy eBay deployed for holiday gift-giving in 2018. The company recognized that purchasing gifts for friends and family isn’t necessarily a simple task. For many of their customers, selecting gifts had become a stressful and arduous process, especially when they didn’t have a particular item in mind. In response to this feeling, eBay partnered with Facebook Messenger to introduce ShopBot.
Respect the conversational UI. The full interaction should take place natively within the app. The goal is to recognize the user's intent and provide the right content with minimum user input. Every question asked should bring the user closer to the answer they want. If you need so much information that you're playing a game of 20 Questions, then switch to a form and deliver the content another way.
The trained neural network is less code than an comparable algorithm but it requires a potentially large matrix of “weights”. In a relatively small sample, where the training sentences have 150 unique words and 30 classes this would be a matrix of 150x30. Imagine multiplying a matrix of this size 100,000 times to establish a sufficiently low error rate. This is where processing speed comes in.
It won’t be an easy march though once we get to the nitty-gritty details. For example, I heard through the grapevine that when Starbucks looked at the voice data they collected from customer orders, they found that there are a few millions unique ways to order. (For those in the field, I’m talking about unique user utterances.) This is to be expected given the wild combinations of latte vs mocha, dairy vs soy, grande vs trenta, extra-hot vs iced, room vs no-room, for here vs to-go, snack variety, spoken accent diversity, etc. The AI practitioner will soon curse all these dimensions before taking a deep learning breath and getting to work. I feel though that given practically unlimited data, deep learning is now good enough to overcome this problem, and it is only a matter of couple of years until we see these TODA solutions deployed. One technique to watch is Generative Adversarial Nets (GAN). Roughly speaking, GAN engages itself in an iterative game of counterfeiting real stuffs, getting caught by the police neural network, improving counterfeiting skill, and rinse-and-repeating until it can pass as your Starbucks’ order-taking person, given enough data and iterations.
One of the first stepping stones to this future are AI-powered messaging solutions, or conversational bots. A conversational bot is a computer program that works automatically and is skilled in communicating through various digital media—including intelligent virtual agents, organizations' apps, organizations' websites, social platforms and messenger platforms. Users can interact with such bots, using voice or text, to access information, complete tasks or execute transactions. 
I argued that it is super hard to scale a one-trick TODA into a general assistant that helps the user getting things done across multiple tasks. An intelligence assistant is arguably expected to hold an informal chit-chat with the user. It is this area where we are staring into perhaps the biggest challenge of AI. Observe how Samantha introduces herself to Joaquin Phoenix’s Ted in the clip below:
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.
Logging. Log user conversations with the bot, including the underlying performance metrics and any errors. These logs will prove invaluable for debugging issues, understanding user interactions, and improving the system. Different data stores might be appropriate for different types of logs. For example, consider Application Insights for web logs, Cosmos DB for conversations, and Azure Storage for large payloads. See Write directly to Azure Storage.
Conversational bots “live” online and give customers a familiar experience, similar to engaging an employee or a live agent, and they can offer that experience in higher volumes. Conversational bots offer scaling—or the capability to perform equally well under an expanding workload—in ways that human can’t, assisting businesses to reach customers in a way they couldn’t before. For one, businesses have created 24/7/365 online presence through conversational bots.
In a bot, everything begins with the root dialog. The root dialog invokes the new order dialog. At that point, the new order dialog takes control of the conversation and remains in control until it either closes or invokes other dialogs, such as the product search dialog. If the new order dialog closes, control of the conversation is returned back to the root dialog.
Most chatbots try to mimic human interactions, which can frustrate users when a misunderstanding arises. Watson Assistant is more. It knows when to search for an answer from a knowledge base, when to ask for clarity, and when to direct you to a human. Watson Assistant can run on any cloud – allowing businesses to bring AI to their data and apps wherever they are.

Another option is to integrate your own custom AI service. This approach is more complex, but gives you complete flexibility in terms of the machine learning algorithm, training, and model. For example, you could implement your own topic modeling and use algorithm such as LDA to find similar or relevant documents. A good approach is to expose your custom AI solution as a web service endpoint, and call the endpoint from the core bot logic. The web service could be hosted in App Service or in a cluster of VMs. Azure Machine Learning provides a number of services and libraries to assist you in training and deploying your models.
There is no one right answer to this question, as the best solution will depend upon the specifics of your scenario and how the user would reasonably expect the bot to respond. However, as your conversation complexity increases dialogs become harder to manage. For complex branchings situations, it may be easier to create your own flow of control logic to keep track of your user's conversation.
Unfortunately, my mom can’t really engage in meaningful conversations anymore, but many people suffering with dementia retain much of their conversational abilities as their illness progresses. However, the shame and frustration that many dementia sufferers experience often make routine, everyday talks with even close family members challenging. That’s why Russian technology company Endurance developed its companion chatbot.
If the success of WeChat in China is any sign, these utility bots are the future. Without ever leaving the messaging app, users can hail a taxi, video chat a friend, order food at a restaurant, and book their next vacation. In fact, WeChat has become so ingrained in society that a business would be considered obsolete without an integration. People who divide their time between China and the West complain that leaving this world behind is akin to stepping back in time.
As in the prior method, each class is given with some number of example sentences. Once again each sentence is broken down by word (stemmed) and each word becomes an input for the neural network. The synaptic weights are then calculated by iterating through the training data thousands of times, each time adjusting the weights slightly to greater accuracy. By recalculating back across multiple layers (“back-propagation”) the weights of all synapses are calibrated while the results are compared to the training data output. These weights are like a ‘strength’ measure, in a neuron the synaptic weight is what causes something to be more memorable than not. You remember a thing more because you’ve seen it more times: each time the ‘weight’ increases slightly.
This means our questions must fit with the programming they have been given.  Using our weather bot as an example once more, the question ‘Will it rain tomorrow’ could be answered easily. However if the programming is not there, the question ‘Will I need a brolly tomorrow’ may cause the chatbot to respond with a ‘I am sorry, I didn’t understand the question’ type response.
The most widely used anti-bot technique is the use of CAPTCHA, which is a form of Turing test used to distinguish between a human user and a less-sophisticated AI-powered bot, by the use of graphically-encoded human-readable text. Examples of providers include Recaptcha, and commercial companies such as Minteye, Solve Media, and NuCaptcha. Captchas, however, are not foolproof in preventing bots as they can often be circumvented by computer character recognition, security holes, and even by outsourcing captcha solving to cheap laborers.
Google, the company with perhaps the greatest artificial intelligence chops and the biggest collection of data about you — both of which power effective bots — has been behind here. But it is almost certainly plotting ways to catch up. Google Now, its personal assistant system built within Android, serves many functions of the new wave of bots, but has had hiccups. The company is reportedly working on a chatbot that will live in a mobile messaging product and is experimenting with ways to integrate Now deeper with search.
The classification score produced identifies the class with the highest term matches (accounting for commonality of words) but this has limitations. A score is not the same as a probability, a score tells us which intent is most like the sentence but not the likelihood of it being a match. Thus it is difficult to apply a threshold for which classification scores to accept or not. Having the highest score from this type of algorithm only provides a relative basis, it may still be an inherently weak classification. Also the algorithm doesn’t account for what a sentence is not, it only counts what it is like. You might say this approach doesn’t consider what makes a sentence not a given class.
For example, ecommerce companies will likely want a chatbot that can display products, handle shipping questions, but a healthcare chatbot would look very different. Also, while most chatbot software is continually upping the AI-ante, a company called Landbot is taking a different approach, stripping away the complexity to help create better customer conversations.

There are situations for chatbots, however, if you are able to recognize the limitations of chatbot technology. The real value from chatbots come from limited workflows such as a simple question and answer or trigger and action functionality, and that’s where the technology is really shining. People tend to want to find answers without the need to talk to a real person, so organizations are enabling their customers to seek help how they please. Mastercard allows users to check in with their accounts by messaging its respective bot. Whole Foods uses a chatbot for its customers to easily surface recipes, and Staples partnered with IBM to create a chatbot to answer general customer inquiries about orders, products and more.


Companies and customers can benefit from internet bots. Internet bots are allowing customers to communicate with companies without having to communicate with a person. KLM Royal Dutch Airlines has produced a chatbot that allows customers to receive boarding passes, check in reminders, and other information that is needed for a flight.[10] Companies have made chatbots that can benefit customers. Customer engagement has grown since these chatbots have been developed.
The bottom line is that chatbots have completely transformed the way companies interact with their consumers. And guess what? This is just the very beginning. And the truth is that even though to some company leaders it may seem challenging to incorporate the omnichannel customer experience, it opens up a fantastic opportunity that allows businesses to engage with customers in a fresh, modern way. The outcome of this may prove to be an excellent opportunity to build more meaningful and long-lasting relationships with the customers.
An Internet bot, also known as a web robot, WWW robot or simply bot, is a software application that runs automated tasks (scripts) over the Internet.[1] Typically, bots perform tasks that are both simple and structurally repetitive, at a much higher rate than would be possible for a human alone. The largest use of bots is in web spidering (web crawler), in which an automated script fetches, analyzes and files information from web servers at many times the speed of a human. More than half of all web traffic is made up of bots.[2]
In a traditional application, the user interface (UI) is a series of screens. A single app or website can use one or more screens as needed to exchange information with the user. Most applications start with a main screen where users initially land and provide navigation that leads to other screens for various functions like starting a new order, browsing products, or looking for help.
This is a lot less complicated than it appears. Given a set of sentences, each belonging to a class, and a new input sentence, we can count the occurrence of each word in each class, account for its commonality and assign each class a score. Factoring for commonality is important: matching the word “it” is considerably less meaningful than a match for the word “cheese”. The class with the highest score is the one most likely to belong to the input sentence. This is a slight oversimplification as words need to be reduced to their stems, but you get the basic idea.
The chatbot uses keywords that users type in the chat line and guesses what they may be looking for. For example, if you own a restaurant that has vegan options on the menu, you might program the word “vegan” into the bot. Then when users type in that word, the return message will include vegan options from the menu or point out the menu section that features these dishes.
2a : a computer program that performs automatic repetitive tasks : agent sense 5 Several shopping "bots" will track down prices for on-line merchandise from a variety of vendors.— Sam Vincent Meddis especially : one designed to perform a malicious action These bot programs churn away all day and night, prodding at millions of random IP addresses looking for holes to crawl through. — Jennifer Tanaka
We then ran a second test with a very specific topic aimed at answering very specific questions that a small segment of their audience was interested in. There, the engagement was much higher (97% open rate, 52% click-through rate on average over the duration of the test). Interestingly, drop-off went wayyy down there. At the end of this test, only 0.29% of the users had unsubscribed.

For each kind of question, a unique pattern must be available in the database to provide a suitable response. With lots of combination on patterns, it creates a hierarchical structure. We use algorithms to reduce the classifiers and generate the more manageable structure. Computer scientists call it a “Reductionist” approach- in order to give a simplified solution, it reduces the problem.

But, as any human knows, no question or statement in a conversation really has a limited number of potential responses. There is an infinite number of ways to combine the finite number of words in a human language to say something. Real conversation requires creativity, spontaneity, and inference. Right now, those traits are still the realm of humans alone. There is still a gamut of work to finish in order to make bots as person-centric as Rogerian therapists, but bots and their creators are getting closer every day.
If you ask any marketing expert, customer engagement is simply about talking to the customer and reeling them in when the time’s right. This means being there for the user whenever they look for you throughout their lifecycle and therein lies the trick: How can you be sure you’re there at all times and especially when it matters most to the customer?
Message generator component consists of several user defined templates (templates are nothing but sentences with some placeholders, as appropriate) that map to the action names. So depending on the action predicted by the dialogue manager, the respective template message is invoked. If the template requires some placeholder values to be filled up, those values are also passed by the dialogue manager to the generator. Then the appropriate message is displayed to the user and the bot goes into a wait mode listening for the user input.
The most advanced bots are powered by artificial intelligence, helping it to understand complex requests, personalize responses, and improve interactions over time. This technology is still in its infancy, so most bots follow a set of rules programmed by a human via a bot-building platform. It's as simple as ordering a list of if-then statements and writing canned responses, often without needing to know a line of code.
Chatbots have been used in instant messaging (IM) applications and online interactive games for many years but have recently segued into business-to-consumer (B2C) and business-to-business (B2B) sales and services. Chatbots can be added to a buddy list or provide a single game player with an entity to interact with while awaiting other "live" players. If the bot is sophisticated enough to pass the Turing test, the person may not even know they are interacting with a computer program.
×