C#
bot
Slack
CognitiveServices
QnAMaker

Azure Bot ServiceとQnA MakerでFAQのbotを作り、Slackと連携する

概要

Cognitive ServicesのFunctions BotとQnA Makerを使用してノンコーディングでFAQができるBotを作りたいと思います。
その後、Slackと連携してSlack上から簡単に質問ができるようにします。

QnA Maker

新規作成

  1. QnA Makerにアクセスをし、Create new serviceを選択します。
    2018-02-17_00h35_14.png

  2. サインインをしていない場合はサインインを求められるのでお持ちのMicrosoft Accountでサインインしてください。

  3. Creating a QnA serviceのページに遷移するので必要事項を入力します。(初回の場合利用規約への同意画面が出てくるのでI agree to...にチェックを入れ、Continueをクリックします。)
    2018-02-17_00h42_44.png

  • SERVICE NAME
    QnAのサイトで表示される名前です。自分の分かりやすい名前を付けるとよいと思います。
  • URL(S)
    元にしたいFAQサイトがある場合にここにURLを入力すると自動でページを解析し、追加してくれます。
  • FILES
    元にしたいファイルがある場合はここに追加します。使用できる拡張子などを確かめて追加しましょう。

今回はURL(S)にAzure サポートに関する FAQを使用しました。
入力が完了したらCreateボタンをクリックします。
2018-02-17_00h53_29.png

4.作成完了
FAQを手動で追加したい場合は右側の「Add new QnA pair」を、URLからまとめて追加したい場合は左側のSettingから追加することが出来ます。
2018-02-17_00h57_29.png

Test

ここまでで作成が完了したのでにTestを行います。
Testタブを選択して先ほど設定した質問をします。設定した答えが正しく返ってきたら成功です。
2018-02-17_01h11_52.png

保存&学習&公開

最後に「Save and retrain」を行ってから「Publish」をします。
2018-02-17_01h05_56.png

このような画面が表示されるのでPublishをクリックし、公開完了です。
2018-02-17_01h14_30.png

Azure Bot Serviceで使用するキーをメモする

完了後に遷移する画面でこの2つをメモしておきます。後でAzure Bot Serviceとの連携の際に使用します。
2018-02-17_01h32_49.png

Azure Bot Service

新規作成

  1. Azureにアクセスし、リソースの作成から「bot」で検索します。
    2018-02-17_01h19_43.png

  2. このような結果が表示されるので今回は「Functions Bot」を選択し、作成します。
    2018-02-17_01h20_46.png

  3. ボット名などは自由に付けますが「ボットテンプレート」を必ずQuestion and Answerに変更してください!!
    2018-02-17_01h24_23.png

  4. しばらく待つとデプロイが完了するので追加されたものの中から「Functions Bot」となっているものを選択します。
    2018-02-17_01h28_33.png

5.アプリケーション設定から「QnAKnowledgebaseId」「QnASubscriptionKey」にそれぞれ先ほどメモした値を入力します。
2018-02-17_01h31_31.png

6.Azure上でもテストをしてみます。これで正しい答えが返ってくればひとまずBotとしては完成です。
2018-02-17_01h52_04.png

Slackと連携する

毎回Azureのポータルからアクセスするのは面倒なのでSlackに質問を投げるとBotが反応し、答えを返してくれるようにします。

Slackのアプリを作成する

  1. create a Slack application.からCreate New Appを選択し、新しいアプリを作ります。
  2. 必要事項を入力し、「Create App」をクリックします。 2018-02-17_02h00_51.png
  3. Basic Informationにある「App Credentials」の内容が後で必要になります。 2018-02-17_02h03_27.png
  4. OAuth & Permissionsにある「Redirect URLs」にhttps://slack.botframework.com/Dev/Validate を追加し、「Save URLs」をクリックします。 2018-02-17_02h06_40.png

Functions Botの設定をする

  1. チャンネルの「More channel」の中にSlackがあるので(今回は追加済みのため表示が消えてしまっています)選択します。
    2018-02-17_02h09_36.png

  2. 資格情報を入力する欄が出てくるので先ほど見た「App Credentials」の内容を入力し、保存します。
    2018-02-17_02h11_48.png

使用したいchannelにBotを追加

Basic InformationのBuilding Apps for Slackの設定を行うと自分のchannelにBotを追加することが出来ます。
2018-02-17_02h14_40.png
2018-02-17_02h15_19.png

完成!!

これでSlackから作成したFAQのBotにアクセスすることが出来るようになりました。
2018-02-17_02h18_32.png

参考