【QnA Maker②】AIサービスを利用して簡単にFAQ Botを作成

2018年9月11日Azure Cognitive Services,Microsoft Azure,QnA Maker

こんにちは。ソリューション開発部 情報発信分科会の飯出(いいで)です。

前回の記事に引き続き、既存のコンテンツから簡単に FAQ サービスを作成できると定評の AI サービス「QnA Maker」を使って、チャットからの問い合わせに答えてくれるサービスを作ってみたいと思います。

QnA Maker を使った FAQ データベースの作成方法については、前回の記事をご覧ください。

QnA Maker はどのような回答を返すか

今回は、QnA Maker で作成した FAQ データベースに対して色々な質問を投げ、どのような回答が返ってくるか検証してみましょう。

作成済みの FAQ データベースを選ぶ

まず、QnA Maker のコンソール画面を開きましょう。URL を忘れた?こちらです。

[My knowledge bases] をクリックして、サービスの一覧画面を開きます。

[My knowledge bases] をクリックして、サービスの一覧画面を開きます。

サービスの一覧画面にて、前回の記事で作成した FAQ データベース「TrialFAQ」をクリックして開きます。

サービスの一覧画面にて、前回の記事で作成した FAQ データベースの名前をクリックします。

前回作成した FAQ データベースの中身を見ることができました。

質問と回答が全く漏れなく反映されています。

テストしてみましょう!

質問とその回答をチェックするだけであれば、QnA Maker のみで完結します。画面右上の [← Test] をクリックすると、テスト用のチャット画面を表示することができます。

画面右上の [← Test] をクリックすると、テスト用のチャット画面を表示することができます。

もう一度クリックすれば、チャット画面を閉じることができます。チャット画面を開いた後は、[→ Test]に変わってますね。なお、[Start over] で、画面をクリアして最初から会話を始めることができます。

もう一度クリックすれば、チャット画面を閉じることができます。

FAQ の質問と同じ文章を入力する

まずは手始めに、FAQ に記載されている質問と同じ文章を入力してみます。「事業内容を教えてください。」と質問です。

FAQ に記載されている質問と同じ文章を入力してみます。

回答のスタイル崩れが若干気になりますが、概ね良好ですね。

質問の表現を変えてみる

ここからが AI サービスの本領発揮。QnA Maker は Cognitive Services の自然言語解釈系 API「LUIS(Language Understanding Intelligent Service)」に近い機能を持っています。文章の中からキーワードを抽出し、キーワードが多くマッチする質問例から回答を引き出してきます。LUIS について、ここでは割愛します。いつか試す日が来れば。

表現を少し変えて、「事業内容は?」と質問してみます。

FAQ に記載されている質問から少し表現を変えてを入力してみます。

結果良好!きちんと返答してますね。

回答が存在しない質問を入力する

作成した FAQ データベースに回答が存在しない質問を入力してみます。「BRoomHubs とは?」と入力してみました。

※ BRoomHubs とは、当社が提供するクラウド型の会議室予約・来訪管理システムです。

作成した FAQ データベースに回答が存在しない質問を入力してみます。

No good match found in KB.」と回答してきました。そのとおりですね。利用者の使い勝手を考えると日本語で回答したいところですが、とりあえず良いでしょう。

質問に対して適切な回答を返せなかったケース

ここまで紹介してきた質問以外にも、さまざまな質問をしてみましが、質問に対して適切な回答を返せなかったケースを紹介します。チャット画面で、「職種について教えてください。」と質問してみます。

質問に対して適切な回答を返せなかったケース

期待していた回答は、「募集要項に記載している職種を募集しております。」だったのですが、この回答は、質問「社内イベントについて教えてください。」に記載されている回答ですね。

この質問に対する QnA Maker の回答を少し覗いてみましょう。

チャット画面で入力した質問の直下に、[Inspect] というリンクがありますので、クリックしてみて下さい。チャット画面が横に広がり、複数の回答がスコア(Confidence score)と共に表示されています。

QnA Maker の回答を少し覗いてみましょう。

回答の内容を見る限り、QnA Maker は

  • 社内イベントについて教えてください
  • 福利厚生について教えてください
  • 年次有給休暇について教えてください

という質問のいずれかであろうと認識し、回答の候補としてピックアップしたようです。「~について教えてください。」を重視した回答となっていますね。

ただ、「職種」というキーワードに対しての回答が全くできていません。このようなケースに対しては、回答を自作する必要があります。

QnA Maker で回答を自作する

QnA Maker では、質問に対する回答を自作することもできます。上記の「職種について教えてください。」という質問を例に、適切な回答を準備してみます。

この場合における適切な回答は、「募集要項に記載している職種を募集しております。」です。回答の文字列には、サイトの遷移先となるリンクも含まれています。

そこで、以下のような文字列を準備して、QnA Maker に回答を登録してみます。

<a href="https://saiyo.arksystems.co.jp/recruit/career.html">募集要項</a>に記載している職種を募集しております。

特に説明の必要は無いかと思いますが、「募集要項」に遷移先の URL を追加するために、アンカータグを設置しただけのシンプルな文字列です。

この作成した文字列を、[Enter a new answer here] と記載されているテキストボックスに登録します。

QnA Maker では、質問に対する回答を自作することもできます。

さぁ、もう一度質問してみましょう。チャット画面に再度、「職種について教えてください。」と質問してみます。

回答を自作し、QnA Maker にもう一度質問をしてみました。

今度はきちんとした回答をすることができました。設定したリンクもちゃんと機能しています。

画面を細かく見るとわかりますが、自作した回答が、[Original source: Editorial] として登録されていますね。めでたしめでたし。

ここまでのまとめ

今回は FAQ サイトをそのまま読み込んだ形の FAQ データベースに対して色々な質問を投げてみましたが、想像以上に適切な回答を返せることがわかりました。しかし、実運用を想像すると使い勝手が悪いケースも多々発生するのではと思います。

実運用に耐えるには、質問を文章形式のまま登録するのではなく、キーワード抽出をして単語単位に分割するなどのカスタマイズを実施し、よく検証する必要があると感じています。

次回は、QnA Maker で作成した FAQ データベースを Bot 化するために、Azure Bot Service と連携してみます。

それでは、また。

  • Zabbix Enterprise Appliance
  • 低コスト・短納期で提供するまるごとおまかせZabbix