最近追加された Active Learning ですが簡単に言うと利用状況を見て、この QA にはこんな質問追加したらいいんじゃないの?っていうのをポータルに出してくれるみたいですね。
暗黙的フィードバックと明示的フィードバックがあるみたいで明示的フィードバックとかを送るには Train API 叩く必要があるのかな。
ここらへんを叩くためのサンプルが以下になります。
曖昧な回答が複数件帰ってきたらユーザーに選択肢を出してくれて、ユーザーが質問を選択すると、その内容が Train API に送られます。
こいつをクローンしてデプロイするには以下の手順を踏めば動きました。
- QnA Maker を適当に準備して発行しておく。EndpointKey とかはメモっておく
- qnamaker-activelearning.bot の qna の定義の各種設定を自分の QnA Maker のものに書き換える
- Azure にボットチャンネル登録とWeb Appを準備
- production の endpoint を追加して上記で作成したものを設定する
- Startup.cs が production のエンドポイントの定義を探すようになってないので以下のように追加する
privatereadonlybool _isProduction; public Startup(IHostingEnvironment env) { _isProduction = env.IsProduction(); // 省略 } publicvoid ConfigureServices(IServiceCollection services) { // 省略 services.AddBot<QnAMakerActiveLearningBot>(options => { // 省略// Retrieve current endpoint. ここに production のときの考慮のコードも追加 var service = botConfig.Services.Where(s => s.Type == "endpoint"&& s.Name == (_isProduction ? "production" : "development")).FirstOrDefault(); // 省略 }); // 省略 }
あとはデプロイしてお好きなチャンネルから動作確認で OK