QnA Maker is a cloud-based API service that allows us to create a question and answer conversation layer over the existing data. In other words, QnA Maker enables to power a Q/A application or a chatbot from sources such as product manuals, FAQ pages, excel files and other public data sources such as URLs or files. QnA Maker is best suited for situations where multiple users have the same query or the user has static information or if the user wants to filter the static information based on the metadata tags.
The QnA Maker API allows us to create a knowledge base(which is a set of question-answer pairs) by importing content from various supported sources such as product manuals and policies, FAQ pages, Sharepoint files, PDFs, etc. Once the content is imported and the knowledge base is published, the client application(social media apps, chatbots, desktop-based apps, etc.) will send a question to the knowledge base endpoint and the QnA Maker service will further process the question and return back a JSON response with the best matched answer. The client application then uses the JSON response to make decisions on how to further continue the conversation(be it displaying the best matched answer or providing more choices to refine the search).
In order to get familiar with QnA Maker, one can get started by creating a QnA Maker resource in the Azure portal and then go on creating the knowledge base(KB) in the QnA Maker portal. Once the KB is published, the client application can programmatically call the knowledge base endpoint and get the JSON response once the request is processed by the QnA Maker service.The QnA Maker portal also allows us to publish the knowledge base to an Azure Web App bot without writing a single line of code.
Enabling the active learning feature in QnA Maker helps to improve the knowledge base quality by suggesting alternative questions. After reviewing the suggestions, we can either add those suggestions or reject them and they do not affect the already existing questions.