Azure Cognitive Services #5: QnA Maker

It's free, easy-to-use, REST API and web-based service that trains AI to respond to user's questions in a more natural, conversational way.

Image Description
Oleksandr Krakovetskyi 02.23.2018

Nowadays there are dozens of services that allow users and developers to create chatbot and run it in a very short time. One of the easiest ways to do this task is to use Q&A Maker created by Microsoft.

Microsoft Q&A Maker is a free, easy-to-use, REST API and web-based service that trains AI to respond to user's questions in a more natural, conversational way. Compatible across development platforms, hosting services, and channels, QnA Maker is the only question and answer service with a graphical user interface - which means you don't need to be a developer to train, manage, and use it for a wide range of solutions.

With optimized machine learning logic and the ability to integrate industry-leading language processing with ease, QnA Maker transform masses of information into distinct, helpful answers.

Bot creation

Thus, let's create our bot with Microsoft QnA Maker. Open in your browser If you don't have Microsoft account create it.

Firstly, on the main page press GET STARTED. After that, your workspace loads. To proceed click Create new service button on the upper menu.

Specify your service name in the "Service Name" field. After that, you have to provide knowledge base to the service. You can either indicate URl of your FAQ and Q&A Maker will parse it automatically or upload your own file. Note, that your FAQ should meet special requirements in both cases.

However if you want to create question-answer knowledge base on your own you should select Create button.

That will lead you to the page, where you have to add your question-answer pair into knowledge base.

Don't forget to press "Save and retrain" button to refresh your knowledge base. However, note, that your previously published will not reflect knowledge base changes, until you publish it again. In the "Test" section you can check your bot.

For some additional information visit following pages:


QnA Maker provides a REST endpoint that you can call from your custom application. However, if you want a quick way to set up a QnA Maker bot, you can use the Azure Bot Service. Bot Service provides the core components for creating bots, including the Bot Builder SDK for developing bots and the Bot Framework for connecting bots to channels.

Create a new bot service

  1. First of all create or log in to your Azure account.

  2. Click the New button found on the upper left-hand corner of the Azure portal, then select AI + Cognitive Services > Web App bot.

  1. A new panel with information about the Web App Bot will open. Click the Create button to start the bot creation process.

  2. The Bot Service creation form will open. Fill it with the requested information (see the image below). In the Bot template section choose the Question and Answer bot template.

  1. Click *Create

Confirm that the bot has been deployed by checking the Notifications. The notification will change from Deployment in progress... to Deployment succeeded. Click Go to resource button to open the bot's resources panel.

For additional information visit this page.

Once the bot is created, you will need to do the following steps to complete the setup.

  1. At Azure portal, open the newly created Web App Bot resource.

  2. Click on "Application Settings", which is on the left side, and in the App Settings list, add QnASubscriptionKey and QnAKnowledgebaseId. The corresponding values can be obtained from the KB Settings page in

Application Settings:

QnASubscriptionKey and QnAKnowledgebaseId:

Paste QnASubscriptionKey and QnAKnowledgebaseId here:

You will get this message after the successful update.

  1. The QnAMaker-enabled Azure bot service app is now ready to use. To try it out click on "Test in Web Chat" to chat with your QnA bot.


QnA Maker is a service which allows you to create bot that is designed to conduct FAQ-like conversations in a quick and convenient way, even without coding. It also supports some useful features, as online learning (users of your app can make the model more precise, by specifying correct answers and adding more variations to knowledge base questions). It can also be integrated with LUIS, to improve the service accuracy. Unfortunately, there is no Microsoft SDK, which would allow to build such services locally.

Latest Publications

News, posts, articles and more!