このページの本文へ

松本典子の「Azure Logic Apps」超入門 ~AI編~ 第1回

Azure Logic AppsからQnA Markerを使う

ノンコーディングで質問に自動回答するLINE BOTを作ってみよう

2018年07月20日 13時00分更新

文● 松本典子 編集 ● 羽野/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

3. Azure Logic Appsの作成

 それでは、最後のステップとして、Azure Logic Appsを作成していきましょう。

3.1 Azure Logic Appsを新規作成する

Azure Logic Appsを新規作成

 Azureの管理ポータルの左メニュー項目「+リソースの作成」→「Web」をクリックすると、項目にAzure Logic Appsが表示されます。表示された「ロジックアプリの作成」に、次の1~4の情報を入力し、作成します。

  1. 名前:作成するLogic Appsの名前を入れます。(日本語の使用不可)
  2. サブスクリプション:サブスクリプションが複数ある場合にのみ表示されるメニューです。複数ある場合、利用するサブスクリプション名を選択します。
  3. リソースグループ:今回は「既存のものを使用」を選択し、「2.1 Azure ポータル から QnA Makerを作成」で作成しているリソースグループ名を選択します。
  4. 場所(リージョン):2018年7月20日にQnA Makerコネクタが全リージョンで利用できるようになりました。今回は「東日本リージョン」を選択しています。

3.2 Azure Logic Appsのトリガーの作成

トリガーの作成

 Azure Logic Appsのトリガーには「HTTP 要求の受信時」を選択します。以下のJSONをコピペしたら、「保存」をクリックし保存します。このJSONはデータの入力形式を指定するものです。

{
      "properties": {
           "events": {
                 "items": {
                      "message": {
                              "properties": {
                                    "address": {
                                        "type": "string"
                                 },
                                  "fileName": {
                                       "type": "string"
                                  },
                                 "fileSize": {
                                        "type": "number"
                                  },
                                  "id": {
                                        "type": "string"
                                  },
                                  "latitude": {
                                       "type": "number"
                                  },
                                 "longitude": {
                                        "type": "number"
                                  },
                                  "packageId": {
                                        "type": "string"
                                 },
                                  "stickerId": {
                                        "type": "string"
                                  },
                                 "text": {
                                        "type": "string"
                                  },
                                 "title": {
                                        "type": "string"
                                  },
                                  "type": {
                                       "type": "string"
                                 }
                            },
                            "type": "object"
                      },
                      "postback": {
                            "properties": {
                                 "data": {
                                    "type": "string"
                                  }
                            },
                            "type": "object"
                     },
                      "properties": {
                            "replyToken": {
                                  "type": "string"
                            },
                            "source": {
                                  "properties": {
                                        "groupId": {
                                              "type": "string"
                                        },
                                        "type": {
                                             "type": "string"
                                       },
                                        "userId": {
                                              "type": "string"
                                        }
                                 },
                                  "type": "object"
                            },
                            "timestamp": {
                                  "type": "number"
                            },
                            "type": {
                                  "type": "string"
                            }
                      },
                      "type": "object"
                },
                  "type": "array"
           }
     },
"type": "object"
}

 保存が完了すると、「2」部分にURLが表示されるのでコピーし、LINE側の設定を行います。

3.2 LINE側のWebhook送信の設定をする

LINE側のWebhook送信の設定

 LINE Developersにアクセスし、プロバイダーリストから「設定するBOT」→「チャネル基本設定」を表示します。スクロールして「メッセージ送受信設定」を以下に内容に変更します。

  1. Webhook送信:「利用する」に変更
  2. Webhook URL:Logic Apps のトリガー部でコピーしたURLを入力します

 この項目の下に「LINE@機能の利用」があります。2つの項目「自動応答メッセージ」と「友だち追加時あいさつ」は「利用しない」に変更しておきます。

3.4 QnA Maker コネクタの設定

QnA Makerコネクタ

 先程トリガーを作成したAzure Logic Appsを開き、「すべてのアクションを検索する」に「QnA Maker」と入力して検索、「QnA Maker - Generate answer」をクリックします。

QnA Makerコネクタの接続

 「2.1 Azure ポータルからQnA Makerを作成」でAzureポータルで作成したQnA MakerのNAMEとKEY1の情報を入力します(接続名にName、API KeyにKEY1の情報)。

QnA Makerコネクタの接続

 接続できると、上のような表示に変わります。

 入力内容はQnA Maker サイトの「Publish」が完了後に表示される「Sample HTTP request」の内容です。

  1. Knowledge Base Id:赤枠内の文字列(36文字の英数字文字列)を入力
  2. Service Host:青枠内の文字列を入力(「https://」を含む)
  3. Endpoint Key:オレンジ枠内の文字列を入力(EndpointKeyの単語を含む文字列)
  4. Question:現時点ではデザイナー画面で入力できない内容で「コードビュー」に切り替える必要があります。 「動的なコンテンツ」から一旦「replyToken」を選択すると、QnA Makerコネクタが自動で「For each」内に入っている表示になります。この状態になってから「保存」をクリック後、「replyToken」を削除して「AAAAA」のようなダミーの文字列に変更、再度保存します。

QnA Maker コネクタ

 左メニューの「ロジック アプリ コードビュー」をクリックし画面の表示を切り替えます。


@items('for_each')?['message']?['text']

 19行目付近に先程ダミーで入力した文言(AAAAAなど)があると思うので、ダミーの文言を削除して同じ場所に上記の文字列をコピペし、保存します。上記の文字列には「ユーザーがLINEで入力した文字列を取得する」という指示が書かれています。

QnA Makerコネクタ

 左メニューの「ロジック アプリ デザイナー」をクリックし画面の表示を切り替えます。記入した内容に間違いがなければ、QnA Makerコネクタが自動で「For each」内に入っている表示になります。

カテゴリートップへ

この連載の記事