こんにちは、サイオステクノロジー技術部 武井です。全5回シリーズのAzure Bot Service及びBot FrameworkのDeepDive(全然深くないですが)最終回は、Azureのことに何でも答えてくれるLINEボットを作ります。
- 概要編
- Azure Bot Service編
- QnA Maker編
- LUIS編
- 今回はこちら → Azureのことに何でも答えてくれるLINEボット作る編
本シリーズの成果物は以下のGitHubにあがっております。
https://github.com/noriyukitakei/AzureFAQBot
実現方法
実現方法は主に「Azure Bot Serviceのチャネル機能」「QnA Maker」の2つです。
Azure Bot Serviceのチャネル機能
Azure Bot Serviceについては第2回目のAzure Bot Service編をご覧頂ければわかると思います。Azure Bot Serviceにはチャネルという概念があり、LINE、Facebook、Teamsなどのチャネルが提供されています。Azure Bot Serviceの設定で、作成したボットをこれらのチャネルにつなげることにより、LINEやFacebook、Teams向けのボットを簡単に作ることが出来ます。
QnA Maker
こちらの詳細はQnA Maker編をご覧頂ければと思います。QnA Makerには、特定のURLのWebサイトを解析して、そのサイトにあるFAQを取り込むという機能があり、今回はこれを使います。ちなみに今回利用したURLはAzureのサポートFAQのものです。
https://azure.microsoft.com/ja-jp/support/faq/
QnA Makerの設定
では、まずQnA Makerの設定をしましょう。先程ご説明したとおり、Azureのサポートに関するFAQが掲載されているWebサイトのデータを取り込みます。
前提として、QnA Maker編でご説明した環境は構築済みであるものとして、その環境にこれからご説明する設定を追加していくものとします。
QnA Makerのポータルにアクセスして、QnA Maker編で作成したKnowledgeを表示して、画面上部メニューにある「SETTINGS」をクリックします。
「Manage Knowledge base」の「URL」の部分に、AzureのサポートのURLを入力して、右上の「Save and train」(切れていますが、、、)をクリックします。
画面上部メニューにある「EDIT」をクリックすると、AzureサポートのURLのデータが取り込まれているのがわかりますヮ(゚д゚)ォ!。
上部メニューの「PUBLISH」をクリックして、画面下部にある「Publish」っていう青いボタンをクリックします。これでQnA Maker側の準備は完了です。
Azure Bot ServiceとLINEの設定
Azure Bot ServiceとLINEの設定を行います。まず、LINE公式アカウントを開設します。これはみなさんがお持ちの個人的なアカウントとは異なり、ボットを公開したりプッシュ通知するためのアカウントです。以下のURLにアクセスします。
https://www.linebiz.com/jp/entry/
「未認証アカウントを開設する」をクリックします。
お手持ちのLINEのアカウントでログインします。「LINEアカウントでログイン」をクリックします。スマホアプリでLINE使っている人は、QRコードでログインっていうのが誠に便利でした。
「アカウント名」に「AzureFAQBot」、「メールアドレス」によく使うメールアドレス、「業種」にはご自分の業種に当てはまるものを選択して、「確認する」をクリックします。
確認画面が表示されますので、内容に問題がなければ「完了する」をクリックします。
以下の画面が表示されます。「LINE Official Account Managerへ」をクリックします。
問題がなければ「同意」をクリックします。
左部メニューの「Messaging API」をクリックします。「Messaging APIを利用する」のボタンをクリックします。
「プロバイダーを作成」を選択して、任意の名称(ここではcogbot)を入力して「同意する」をクリックします。
とりあえず何も入力しないで、「OK」をクリックします。
内容に問題がなければ「OK」をクリックします。
後で使うので「Channel ID」「Channel secret」をメモっておきます。メモったら、画面左下の「その他の設定はLINE Developerから行えます。」の「LINE Developer」をクリックします。
「Messaging API」をクリックします。
「今すぐはじめよう」をクリックします。
先程作成した「AzureFAQBot」をクリックします。
以下の画面が表示されます。
そのまま下へスクロールすると、「アクセストークン(ロングターム)」というのがあります。「再発行」のボタンをクリックします。
「失効までの時間」は「0」にして、「再発行」をクリックします。
アクセストークンが表示されます。後で使いますので、メモります。
QnA Maker編で作成したWebアプリボットのリソースを表示します。右部メニューに「チャネル」をクリックします。「LINE」のアイコンが表示されますので、それをクリックします。
先程メモした「Channel secret」「アクセストークン」を入力します。また、後で使いますので、「webhook」のURLをメモります。
LINE Developersの設定画面に戻ります。先程アクセストークンが表示されているところの下に「Webhook送信」というのがありますので、その横にある「編集」ボタンをクリックします。
「利用する」にチェックして「更新」をクリックします。
もうちょっと下にスクロールすると、「Webhook URL」というのがあります。ここに、先程AzureのポータルでメモしたwebhookのURLを貼り付けて「更新」をクリックします。
もうちょっと下にスクロールすると、「LINE@機能の利用」という項目があります。「自動応答メッセージ」の欄の「設定はこちら」をクリックします。
ブラウザがもう一つ起動します。「応答メッセージ」を「オフ」にします。ボットが応答しますので、不要です。
先程のMessaging APIを設定していたブラウザに戻って、もうちょっと下にスクロールすると「Bot情報」という項目があります。そこにQRコードが表示されていますので、LINEのアプリからスキャンして、友だちに追加します。LINEのホーム画面右上の友だち追加のアイコンをタップし、次に「QRコード」をタップして、以下のQRコードを読み取ってください。
使ってみる
では実際に使ってみましょう。友だちに追加したら、いろんな質問を入れてみて下さい。以下のように回答が出てきます。これ、バックエンドではAzue Bot ServiceとQnA Makerが頑張って回答作ってます。
まとめ
すごいですよね。こんな簡単にLINEボット作れました。しかもQAもQnA Makerの機能で簡単につくれました。もうAzure Bot Serviceなしでは生きられません。No Azure Bot Service, No Life!!