How to Build a Chatbot Without Code

** Update (30th June 2018) **
Since this blog post, QnA Maker has come out of Preview and become Generally Available. One of they key changes that may catch you is the change in keys that need to be populated within the Application Settings of your Web App Bot. The new keys are QnAAuthKeyQnAEndpointHostName and QnAKnowledgebaseId.

You can find these values by logging into QnA Maker and navigating to My knowledge bases > View Code or simply clicking on SETTINGS if you already have opened your Knowledge Base open. The image below illustrates how these values map to the Application Settings within your Web App Bot.

qna_maker_settings.png

Content

  1. What is a Chatbot?
  2. Chatbot Categories
  3. QnA Maker
  4. High-Level Process
  5. Demo: Build a QnA Chatbot
  6. Next Steps
  7. Video: Part 1 - Tesla Chatbot with QnA Maker
  8. Video: Part 2 - Slack Integration with Azure Bot Service

1. What is a Chatbot?

A chatbot is an interactive computer program that has the ability to process natural language typically fed in the form of audio or text and return a response, simulating human conversation.

2. Chatbot Categories

  • Task Automation: Raise an incident, request annual leave, restart a server. 
  • Question and Answer:  What is the weather tomorrow?  What time am I meeting with Steve?
  • Digital Assistants: Siri, Alexa and Cortana are mainstream examples that straddle both these areas and cover a vast number of domains (e.g. weather, music, home automation).

3. QnA Maker

QNA Maker enables the rapid deployment of bot services that can answer questions. While underpinned by artificial intelligence the technical complexity has been largely abstracted allowing users to build and deploy functional endpoints via a graphical user interface, no code required.

4. High-Level Process

qna_maker_high_level.png

5. Demo: Build a QnA Chatbot

1. Identify a data source (in this example we are going to be using Tesla's FAQ's for New Owners).

tesla_faq.png

2. Logon to QnA Maker and create a new service.

a) Specify a Service Name (e.g. Tesla FAQ).
b) Add the URL as a data source.
c) Click Create.

tesla_qna_maker.gif

3. Click Publish. Note: In the example below, I have shown how the endpoint can be tested using Postman.

publish_qna_maker.gif

6. Next Steps

So we have a functional HTTP endpoint which encompasses the intelligence aspect of our chatbot (i.e. question > understanding > response), but how we do we make this service widely accessible?

While there is nothing stopping you from using QnA Maker standalone, Azure Bot Service has a number of rapid deployment templates which allows the integration to a variety of channels with little to no code. Build once, deploy many.

Check out the videos below to see the process end to end from service creation using QnA Maker to channel deployment via Azure Bot Service.

multi_channel.png

7. Video: Part 1 - Tesla Chatbot with QnA Maker

8. Video: Part 2 - Slack Integration with Azure Bot Service

-fin-