オンプレ系インフラエンジニアがAzureを勉強する

いつか誰かの何かの役に立つと嬉しいな

Bot Framework Composerで作る簡単FAQチャットボット

はじめに

Bot Framework Composer がv1.1.1になり、QnA Makerのナレッジベース作成がComposer上でできるようになりました。
これにより簡単なFAQチャットボットであればかなり素早く簡単にできるのではないかと思いますので、使い勝手を見ながらFAQチャットボットの作り方を書いていきます。


Bot Framework Composerとは

Bot FrameworkをベースとしたチャットボットがGUIで作れるツールです。
ノンコーディング、ローコーディングでチャットボットが作れます。
LUISやQnA Maker、Power Virtual Agentsとの連携ができます。

Introduction to Bot Framework Composer - Bot Composer | Microsoft Docs


作るもの

Azureの料金に関するFAQチャットボット

Azure の料金に関する FAQ | Microsoft Azure


使うもの

  • Azure上のQnA Makerリソース
  • Bot Framework Composer v1.1.1


参考

Create a QnA Maker knowledge base in Composer - Bot Composer | Microsoft Docs

 

手順

AzureにQnA Makerのリソースを作成する

Azureに[QnA Maker]というリソースを作成します。

価格レベルについて、Freeレベルで発行できるナレッジベースは2つまでのようです。

Azure リソース - QnA Maker - Azure Cognitive Services | Microsoft Docs

f:id:mitsunooon:20201014000305j:plain

f:id:mitsunooon:20201014000928p:plain

 

リソースの作成が完了したら、キーを取得します。
作成したQnA Makerのリソース内の[キーとエンドポイント]から、[キー 1][キー 2]のいずれかをコピーして控えておきます。
Bot Framework Composerからボットを作成するときに必要になります。

f:id:mitsunooon:20201014001048p:plain

 

Bot Framework Composerでボットを作成する

Bot Framework Composer(v1.1.1)を下記よりインストールします。

Release 1.1.1 · microsoft/BotFramework-Composer · GitHub

 

Bot Framework Composerを起動します。
起動したら、ホーム画面で[New]をクリックします。

f:id:mitsunooon:20201014001237j:plain


[Create from knowledge base(QnA Maker)]を選択し、[Next]をクリックします。

f:id:mitsunooon:20201014001302j:plain

 

[Name]にプロジェクトの名前を入力します。
チャットボットの名前になるものではないです。

プロジェクトの保存場所も指定します。

f:id:mitsunooon:20201014001343j:plain

 

[URL]に参考にするFAQサイトのURLを入力します。
今回はAzureの料金に関するFAQのサイトを使います。
[Create knowledge base]をクリックします。

f:id:mitsunooon:20201014001404j:plain


ナレッジベースの作成が終わるとQnAの項目に入力したURLから読み取った質問と回答のペアが一覧で表示されます。
ここでさらにナレッジベースを追加することや質問回答のペアを追加することもできます。
マルチターンの設定はまだQnA Makerウェブサイトのようにはできないのかなと思います。

f:id:mitsunooon:20201014001449j:plain


せっかくv1.1.1から多言語対応になったので日本語に設定します。
左下の歯車マークをクリックします。
[Bot Settings]>[Create copy to translate bot content]をクリックします。

f:id:mitsunooon:20201014001722j:plain

 

[Japanese(Japan)]を選択します。
下の部分にもチェックを入れておきます。
[Done]をクリックします。

f:id:mitsunooon:20201014001751j:plain

 

[Bot language (active)]と[Default language]を[Japanese(Japan)]に変更します。

f:id:mitsunooon:20201014001814j:plain


ボットの作成をします。
右上の[Start Bot]をクリックします。
[QNA Subscription key]にAzureのQnA Makerリソース作成時に控えておいたキーを入力します。

f:id:mitsunooon:20201014001935p:plain

 

作成が完了すると、[Bot Framework Emulator]で動作確認ができます。

f:id:mitsunooon:20201014002024j:plain


TeamsやLINEなどのチャットボットとして使う場合には、今まで同様の方法でAzureにリソースを作成します。
過去記事などご参考いただければと思います。

Bot Framework ComposerでLINEボットを作ったときにつまづいたところ - オンプレ系インフラエンジニアがAzureを勉強する

 

注意

[Start Bot]をした後にQnA Makerのホームを見に行くと、こちらにもナレッジベースが作成されています。

f:id:mitsunooon:20201014002250p:plain


しかし、ここでナレッジベースを編集しても、Bot Framework Composer側に反映されません。
反映されるどころか、[Start Bot]をするとBot Framework Composer上のナレッジベースがQnA Makerウェブサイトに上書き反映されるので、QnA Makerウェブサイト上で編集した内容は消えます。
このあたりのやりとりやナレッジベースを増やす場合についてはまた改めて試行錯誤したいと思います。

 

おわりに

QnA MakerとBot Framework Composerを行き来しながらしていた諸々の設定がBot Framework Composerだけで済むようになった、
手で設定してたappsettings.jsonの設定が不要になった、
あたりが個人的に便利になったなと感じたところでした。
マルチターンの作成やQnA MakerウェブサイトのKBとの連携がもう少しよくなるといいなと思いました。