QnA Maker – Documents to a FAQs App

A common challenge for most informational FAQs (Frequently Asked Questions) scenarios is to separate out the content management from the FAQs design and development, as content owners are usually domain experts who may not be technical. QnAMaker addresses this by enabling a QnA management experience.

In Microsoft words – Azure QnA Maker allows you to edit, remove, or add QnA pairs with an easy-to-use interface, then publish your knowledge base as an API endpoint for a bot service. It’s simple to test and train the bot using a familiar chat interface, and the active learning feature automatically learns questions variations from users over time and adds them to your knowledge base. Use the QnA Maker endpoint to seamlessly integrate with other APIs like Language Understanding service and Speech APIs to interpret and answer user questions in different ways. More details are available here.

To get my hands dirty, I started developing a minimal app. Basically, a Hello World with QaA Maker

The high-level scope is –

  1. Firstly, I have an “Azure Purchase FAQ.pdf” file which contains the questions and answers related to Azure purchasing (it’s a cut short version for obvious reasons).
  2. Secondly, I uploaded the above file to https://www.qnamaker.ai/ and terminology wise, it’s the knowledge base creation.
  3. Lastly, developed a quick console application using C#. On start, this app hits the ‘qnamaker’ endpoint to search a question and gets the answer for it.

Honestly, writing this blog took me more time than developing an end to end working solution

The solution is uploaded on the GitHub with project namely, “AzurePurchaseFAQ“. Feel free to copy/clone and try your own hands also. To begin, create the QnA Maker service and deploy with free/defaults. The settings for Sample HTTP request would look like –

POST /knowledgebases/ee0f5e4a-ac42-4f91-9b47-8161b6c5a409/generateAnswer

Host: https://azurepurchasefaq.azurewebsites.net/qnamaker

Authorization: EndpointKey 4836aac3-9fcf-45ca-9295-d256a50216ec

Content-Type: application/json

{“question”:””}

On running the app, the console window should look like this –


Happy coding, and have fun 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: