garypretty / botframework

Microsoft Bot Framework helpers and additional dialogs
MIT License
60 stars 51 forks source link

How to support active learning using this package? #24

Open youssefyoussef opened 6 years ago

youssefyoussef commented 6 years ago

Hello,

QnA Maker service supports active learning in run-time by providing best n matches to the user and allowing the end user to select the right question. How do we support that using QnAMakerDialog nuget package?

xiaolangxyz commented 6 years ago

@youssefyoussef I have the same question. Have you figured it out?

youssefyoussef commented 6 years ago

@xiaolangxyz I just used the QnAMakerDialog by bot framework (namespace: Microsoft.Bot.Builder.CognitiveServices.QnAMaker) which has QnAFeedbackStepAsync method. It is a bit limited as I couldn't localize the response when no answer is present in the knowledge base.

Link on github: https://github.com/Microsoft/BotBuilder-CognitiveServices/blob/master/CSharp/Library/QnAMaker/QnAMaker/QnAMakerDialog.cs

xiaolangxyz commented 6 years ago

@youssefyoussef How do you think about this method? Is it helpful? Because I'm not using the QnAMakerDialog of BotBuilder-CognitiveServices. And the new API v4 doesn't support train knowledge base. I'm considering not to use it.

youssefyoussef commented 6 years ago

It worked for my use case. Perhaps if I understand more about your needs I will be able to recommend which library to use? I train knowledge base using qnamaker.ai interface directly, not through API's. If I were to use the API's, I will probably use the REST API.

xiaolangxyz commented 6 years ago

@youssefyoussef This is my question . Thanks for telling QnAFeedbackStepAsync is useful. I will consider to use it.. By the way if Microsoft.Bot.Builder.CognitiveServices.QnAMaker), is it easy to use metadata?

youssefyoussef commented 6 years ago

@xiaolangxyz Here is a sample for using Bot Builder QnAMakerDialog: https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/CSharp/Samples/QnAMaker

I know metadata can only be managed using the REST API.