QnA MakerとAzure Bot ServiceでFAQを答えてくれるボットを作る(Slack & Webサイト)

概要

うまいことFAQを答えてくれるAIサービスがないかなーと探していたらQnA Makerに出会い、あまりの簡単さに感動しました!
日本語情報のデータベース化や日本語のゆれにもかなり対応できている印象です。過去半年ほどの記事をみると日本語対応がまだまだだという情報が多かったので、ここ最近精度が上がったのかもしれません。

QnA Maker

今回はサンプルとして、仙台市のよくある質問(http://www.city.sendai.jp/shise/koho/faq/index.html )を取り込んでみたいと思います。WEBからデータベース化する以外にも、tscやpdf、doc形式のファイルも取り込めるようです。

Kobito.4HYTUg.png

まずは、QnA MakerでFAQデータベースを作成します。
QnA Maker(https://qnamaker.ai) にログインして、Create new serviceを開きます。

Kobito.Mlfmiv.png

SERVICE NAMEに今回作成するFAQデータベースの任意の名前、FAQ URL(S)にFAQが掲載されているURLを入力します。

Kobito.PCzCxU.png

たったこれだけでFAQデータベースが作成されます!
しばらくすると以下のようにWEBサイトを解析して、取得されたFAQ情報がデータベース化されます。自動で下層ページまで取得してくたり、質問と回答を認識してくれます。(WEBサイトの作り方によってはうまく取得できない場合もありました。)

Kobito.TEphpv.png

これを外部サービスと連携する場合は、Publishをクリックします。

Kobito.jwvKAW.png

Publishするデータベースの内容が表示されるので、問題なければPublishをクリックします。

Kobito.rQZVLv.png

これで、外部からの連携できるようになりました。

スクリーンショット 2017-05-12 18.09.41.png

Azure Bot Service

QnA Makerで作成されたFAQデータベースをbot化するためにAzure Bot Serviceと連携していきます。
ポータルからAzure Bot Serviceを作成します。

Kobito.wLYC0E.png

作成に必要な情報を入力します。
Kobito.9xuSQs.png

作成したBot Serviceを開くと、Microsoft App IDの作成が求められるので、 IDを生成し、パスワードを元の画面に入力します。
Kobito.idxdH6.png

Botの言語を選択し、Question and Answerを選択し、Create botをクリックします。

Kobito.Y5K0tw.png

Kobito.byxopH.png

先ほど作成したQnA Makerのデータベースを選択してOKをクリックします。
Kobito.RZXybc.png

Botのコードが表示されます。データベースに存在しない質問を受けた時には、
「No match! Try changing the query terms!」
とデフォルトで設定されていますので、
「質問を理解できませんでした。http://www.city.sendai.jp/shise/koho/faq/ を参照してください参照してください。」
と日本語に変更しておきます。
Kobito.B2qEtz.png

Slackとの連携

次にCHANNELSタブに移動し、外部サービスとの連携を設定します。
Kobito.dp1Cco.png

Slackと連携する場合は、Slackのアイコンを押すと、接続手順が表示されますので、その通りに進めていきます。
Redirect URIを入力する箇所が、Azure上の手順と異なっていました。(Redirect URIはOAuth & Permissionsに設定箇所があります。)
Kobito.YppPpX.png

連携が完了すると、slack上からbotを招待すると利用できるようになります。
Kobito.EkcN7d.png

チャンネルに書き込むとSlackが応答しおてくれます。
Kobito.84PatP.png

このように多少のゆらぎにも対応してくれました。
Kobito.xTOwa8.png

WEBサイトへのチャットフォームの設置

Azure Bot ServiceのチャンネルからWebChatのEditを選択すると、WEBサイトに埋め込むhtmlを生成できます。

Kobito.a4PqA4.png

Add new siteをクリックして、チャットを設置するサイトURLを入力します。

Kobito.lylky5.png

キーとhtmlが生成されるので、htmlにキーを埋め込み、WEBサイトに追加するとFAQチャットが利用できます。
Kobito.ACQYc7.png

ブラウザから見るときちんとチャットが表示されています。
Kobito.ZRNVKD.png

所感

うまくサイトからFAQのデータベースが生成できれば15分くらいでFAQを答えてくれるbotが作成できます。
QnA Makerすごい!
Azure Bot Service簡単!
これはいろいろと使えそうです!