こんにちは。今日は、Azure Cognitive Service – QnA Maker/Languageについての記事になります。以前の記事で、超シンプルな(一往復だけの)チャットボットを作成してみましたが、今後の記事ではもう少し実用に即した形にカスタマイズしていきたいと思います。
本日はその第一弾、複数ターンの会話です。それではまいります。
なお、以下の記事はQnA Makerベースで解説していますが、ナレッジベースの構成方法などはQnA MakerでもLanguageでも同じかと思いますので、基本的には同じことが言えると思っております。
Contents
実現したいこと
一般的には、チャットが一往復で終わることはありませんよね。以下のように、ユーザがキーワードを提示して、チャットボットがそれに関連するトピックを複数提示して、ユーザが選んで・・といった流れで聞きたいことが絞り込まれていくかと思います。
今回はこれを実現したいと思います。
実現方法
ナレッジベースの更新
参考ドキュメント
https://docs.microsoft.com/ja-jp/azure/cognitive-services/qnamaker/how-to/multi-turn
これを実現するためには、ナレッジベースを対応した構造に変換する必要があります。具体的には、ナレッジベースにあるFollow-up Promptを使います。
例えば、「カスタムドメイン」というワードを入れると、質問絞り込みのための問いかけをボットに出させたいとします。
そんなときは以下のように、新しいQAを追加します。
そして、このQAのFollowup Promptに、ボットが返す選択肢を追加していきます。Link to QnAには、ナレッジベース上の他のQAを指定できます。
こんな感じで複数の選択肢を追加してみました。
テスト
それではこのナレッジベースをPublishして、テストしてみましょう。
QnA Makerを呼び出しているAzure Bot ServiceのWebチャットからテストしてみました。すると、以下の通り、期待した動作になりましたね・・!
以上、Azure Cognitive ServiceのQnA Maker / Languageで、複数ターンの会話を構成する方法の解説でした。
また気づいたことがあれば随時追記していきたいと思います。最後に、この記事がお役に立ちましたら、以下の「いいね」ボタンをポチって頂けると励みになります!
おしまい
コメントを残す