雑に QnA Maker を触って Slack と連動させてみた
QnA Maker を使用してFAQ BotをSlack に連動させたメモ
(2018.04時点ではプレビュー版です)
QnA Maker とは
会話的な方法でユーザーの質問に回答するためのREST APIとWebベースのサービスを簡単に作成する事が出来るサービス
こんな感じの仕組み
QnA servicesの作成
まずはQnA Makerにアクセスして
"Create new service"からQnA servicesを作成する
FAQの元となる情報の指定方法には二通りある
一つはFAQサイトのURLを指定する方法で、もう一つはFAQが書かれているファイルをアップロードする方法
今回はMazda Zoom-Zoom スタジアム広島|よくあるご質問(Q&A)のURLを指定する方法で作成してみる
後は"Create"ボタンを押すだけ
正常に作成されるとFAQの元となる情報が表形式で表示される
微妙に読み取れていない場合は表を修正し"Save and retrain"を押す
また、指定したFAQサイトによっては全く読み取れない場合もある
QnA servicesのテスト
作成したservicesはTestタブからテストも可能
ここで質問に対する回答が間違っている場合は、正解となる回答を選択し学習することも可能のようだ
QnA servicesの公開
"Publish"よりserviceを公開する
公開されるとSample HTTP Requestが表示され、その中にQnAKnowledgebaseIdとQnASubscriptionKeyが埋め込まれている
これはAzule Functions Botを作成する際に必要なのでメモっておく
メモるのを忘れた場合はMy QnA servicesからView Codeでも確認できる
ここまででQnA servicesの作成は完了
Azule Functions Bot の作成
次にQnA serviceを使用したBot アプリをAzule Functions Botで作成する
作成する際にボット テンプレートは"Question and Answer"を指定する
アプリケーション設定
作成されたAzule Functions Botへアプリケーション設定を行う
アプリケーション設定タブのアプリ設定へQnAKnowledgebaseIdとQnASubscriptionKeyを設定して保存する
値は先ほどQnA services作成時にSample HTTP Requestに埋められていた値を使用する
"Web チャットでテスト"タブでテストを行い回答が返ってくれば完了
Slack との連動
今回作成したBotをSlackと連動させる
Slack Appの作成
アプリ名と作成したアプリが所属するワークスペースを指定してSlack Appを作成する
Slack Appの設定
Redirect URLの追加を行う
Bot Userの作成
Event Subscriptionsの設定
Request URLに https://slack.botframework.com/api/Events/{ボット ハンドル} を入力する
ボット ハンドルはAzure Functions Botの設定にある
Subscribe to Bot Eventsへダイレクトメッセージに反応するイベントを追加する
Azure Functions Botのチャンネル設定
Azure Functions BotのチャンネルからSlackを選択
Slack AppのBasic InformationにあるApp Credentialsの情報をSlackの資格情報へ設定する
まとめ
QnA Makerをつかうと簡単にSlackで上で質問に回答してくれるBotが作成出来た