Cognitive Services Episode 4 - QnA Maker

Play Cognitive Services Episode 4 - QnA Maker
Sign in to queue


In the 3 first episodes, we have been building a minimal chatbot and we created the LUIS app that fullfills the following purposes: the ability of handling casual chat with end users, the ability to respond to IT-related questions, the possibility for users to view and report incidents, to find documents and to find experts who can help them on specific matters. Now that you got familiar with intents, entities, active learning and LUIS'training, it is time to implement the actual actions.

In this episode, we see how to take advantage of QnA Maker to handle the casual chat and IT knowledge base functionalities our chatbot has to deal with. I will also highlight the strengths and current limitations of QnA Maker.



Right click to download this episode

Download captions

The Discussion

  • User profile image

    Hi,Thanks for the elaborate tutorials. I have tried integrating LUIS with QnAmaker services. But, I'm facing issues. Would request your guidance for the same. The integration of LUIS and QnAmaker independently have been successful. But, I'm facing issue with combined integration.


  • User profile image


    Whatever you do, your bot's message endpoint will be called and from there on, you can either call QnA Maker directly, either start a Luis Dialog. From within a Luis Dialog's intent, you can easily call QnA Maker.

    There is absolutely no problem combining both.

    Best Regards

  • User profile image

    Hi great video,

    What I want to know is when using this method of creating your own card, does it still use the active learning activity. I noticed there's a default implementation that creates the card for you with the number of top answers/questions created in the buttons, including a 'None of the above.' button which seems to signal something to the QnaMaker service to learn that those answers do not apply to the question asked.

    The default implementation I'm talking about would look like this:

    protected override async Task QnAFeedbackStepAsync(IDialogContext context, QnAMakerResults qnaMakerResults)
    await base.QnAFeedbackStepAsync(context, qnaMakerResults);

    The reason I'm asking this is that I'm trying to build my own card with a bit of formatting included to display all the text in the button, the default method only returns half the text in each button. I cannot seem to find any information on this.

    Kind Regards

  • User profile image


    No, this won't change anything. The active learning part is only at QnA Maker level using the QnA Maker UI. The card example I used in the video is just a way of showing multiple answers to the user. If the user says "none of this above", you should track that in a database along with the initial question, and then, you could manually adjust QnA Maker and add extra question/answer pairs that cover the topic or adjust it to respond adequately.

    Best Regards

Add Your 2 Cents