Azure Cognitive Service – QnA Maker/Languageでボットと複数ターンの会話をできるようにする

こんにちは。今日は、Azure Cognitive Service – QnA Maker/Languageについての記事になります。以前の記事で、超シンプルな(一往復だけの)チャットボットを作成してみましたが、今後の記事ではもう少し実用に即した形にカスタマイズしていきたいと思います。

本日はその第一弾、複数ターンの会話です。それではまいります。

なお、以下の記事はQnA Makerベースで解説していますが、ナレッジベースの構成方法などはQnA MakerでもLanguageでも同じかと思いますので、基本的には同じことが言えると思っております。

実現したいこと

一般的には、チャットが一往復で終わることはありませんよね。以下のように、ユーザがキーワードを提示して、チャットボットがそれに関連するトピックを複数提示して、ユーザが選んで・・といった流れで聞きたいことが絞り込まれていくかと思います。

今回はこれを実現したいと思います。

公式ドキュメントより

実現方法

ナレッジベースの更新

参考ドキュメント

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で、複数ターンの会話を構成する方法の解説でした。

また気づいたことがあれば随時追記していきたいと思います。最後に、この記事がお役に立ちましたら、以下の「いいね」ボタンをポチって頂けると励みになります!

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。