

【QnA Maker①】AIサービスを利用して簡単にFAQ Botを作成
こんにちは。ソリューション開発部 情報発信分科会の飯出(いいで)です。
本業であるシステム開発業務の傍ら、このブログや当社サービスである BRoomHubs、まるごとおまかせZabbix、ならびに当社採用サイトの維持・管理を一手に引き受けています。あくまでも本業の傍らでの作業ですが、結構楽しみながらやっています。
時代の波に乗り遅れてしまった感はありますが、最近は当社の各サイトにチャット Bot を組み込んでUX(ユーザーエクスペリエンス)の向上を図ってみようかなとか考えています。
今回は既存のコンテンツから簡単に FAQ サービスを作成できると定評の AI サービス「QnA Maker」を使って、チャットからの問い合わせに答えてくれるサービスを作ってみたいと思います。
サービスの作成にあたり、今回は無料の Azure アカウントを用います。作成したアカウントを使って Microsoft Azure にログイン状態した状態でスタートします。
QnA Maker を使って FAQ データベースを作成する
今回はサンプルとして、当社採用サイトのよくある質問ページを取り込み、QnA Maker に学習させていきます。Web からデータベース化する以外にも、予め準備したファイルを使ってデータベース化することもできるようです。こちらについては、機会があれば試してみたいと思います。


Cognitive Services > QnA Maker のページを開く
QnA Maker は、Cognitive Services と呼ばれる Microsoft が提供する人工知能 API の一種です。
[QnA Maker を試す >] をクリックして、QnA Maker のコンソール画面を開きます。


QnA Maker のコンソール画面が開きましたね。


新規サービスを作成する
[Creare a knowledge base] をクリックして、新規サービスの作成画面を開きます。


新規サービスの作成画面が開きました。
Azure 上に QnA service を作りましょう。と、書かれていますので [Create a QnA service] をクリックします。クリックすると、Azure の Portal (ダッシュボード)が開きます。


Azure 上に QnA Maker 用の領域を作成します。
ここでは、Name に「TrialFAQ」と入力して進めますが、お好みの名前を付けてください。その他の必須項目には、利用状況にあった項目を選択してください。入力し終わったら、[作成]ボタンをクリックしましょう。


QnA Maker の新規サービス作成画面に戻ります。
ここでは Azure 上に作成した QnA Maker 用の領域に接続するための設定を選択していきます。もし選択肢が表示されない場合は、画面を再度表示(リフレッシュ)してみてください。きっと表示されます。(私の場合ですが、選択肢が表示されるまで若干時間が掛かりました。)


URL を指定して、ページを解析する
続いて、KB(Knowledge Base)の名前を入力します。ここでも「TrialFAQ」と入力して進めます。
[Populate your KB.] 欄に、FAQ ページの URL を入力しましょう。ここで、当社採用サイトの「よくある質問」ページのURL(https://saiyo.arksystems.co.jp/faq/index.html)を入力します。
[File name] 欄は今回使いません。
入力を終えたら、[Create your KB] をクリックして、FAQ データベースの作成を始めます。


少々待ちましょう。
入力した URL のページを解析して質問と回答を認識し、取得した FAQ 情報をデータベースに蓄積しています。


FAQ データベース完成
これで FAQ データベースの完成です!
当社採用サイトの「よくある質問」ページが解析され、画像では判りづらいのですが、質問と回答が全く漏れなく反映されています。


ここまでのまとめ
あまりの簡単さに感動。QnA Maker すごい!定評どおり!
既存の FAQ サイトから上手くデータベースが作成できれば、ここまで10数分で出来上がります。ノンプログラミングかつ簡単にチャット Bot の基盤が構築できることがわかりました。
なお、当社にある別の FAQ サイトも QnA Maker で読み込んでみましたが、上手く読み込めませんでした。QnA Maker が質問と回答のペアをきちんと認識できる作りになっていないと、読み込めないようです。
次回は、作成した FAQ データベースに対して色々な質問を投げ、どのような回答が返ってくるか検証してみます。
それでは、また。