前回の続きで、ローカルで動かしたチャットボットをAzure上でデプロイしていきます。
今回はrinna Developersを試すのが主旨なのでBot Framework Composerについては触れませんが、もし本格的なBotを作るのであればGUIツールを上手く活用していくのがいいのかもしれません。 Bot Framework Composerについてはまた別の記事で触れたいと思います。ノーコードツールも便利になってきているのでプログラミングする部分とGUIで作る部分はうまく切り分けて開発していきたいですね。
それではLINE上でりんなさんと会話できるアプリケーションを作ってみましょう!
前提条件
- GitHubに動作確認済のチャットボットのソースが配置されていること
- LINE Developers コンソールに入れること
- Azure Subscriptionを持っていること
アーキテクチャ
前回まで
前回はrinna DevelopersでSubscriptionを発行するところまでやりました。
今回作るところ
Azure基盤のボットをLINE上で動かすアーキテクチャは以下のようになっています。 Azure Resource同士の認証についてはマネージドIDを使って、LINEとAzureの認証についてはLINEから発行される資格情報を使って認証を行います。 下図の赤枠で囲っている部分が認証方法になります。
Web Appsの作成
まずはローカルで動かしていたソースコードをAzure上にデプロイしていきます。 最初にWeb Appsリソースの作成から行います。 基本的にはデフォルトの設定で問題ありません。
CI/CDの設定
「デプロイ」の設定で「GitHub Actionsの設定」を有効化しておくと、GitHubのソースコードの配置までは自動化されます。
リソースの作成後にGitHubのソースコードを見に行くと、./.github/workflow/<branch name>_<resource name>.yml
が作成されています。
デプロイの確認
リソースの作成を完了し、URLにアクセスすると以下のような画面にアクセスできます。
上画像の赤線部のリンクからアクセスして下画像の画面が表示されたらボットのソースコードの配置が完了です。
Azure Bot Serviceの作成
次にAzure Bot Serviceの作成をやっていきます。
認証方法の選択
Azure Active Directoryへのアプリ登録などすると面倒なので、今回はスタンドアローンで作れる「ユーザー割り当てマネージドID」を選択します。
認証の種類 | 備考 |
---|---|
ユーザー割り当てマネージドID | App Service上でID管理ができる。 ユーザー割り当てマネージド ID の管理 |
シングルテナント | Azure Active Direcotryへアプリ登録が必要 |
マルチテナント | Azure Active Directoryへアプリ登録が必要 |
設定が完了したら、リソースの作成をクリックします。
Azure Bot Serviceの構成を編集
下画像の「メッセージングエンドポイント」にWebAppsのURLに/api/messages
を加えて入力し、適用します。
次に、Azure Bot Serviceの構成情報をBotソースのappsetting.jsonに反映します。
{ "MicrosoftAppType": "UserAssignedMSI", "MicrosoftAppId": "<Microsoft App Id>", "MicrosoftAppPassword": "", "MicrosoftAppTenantId": "<アプリ テナントID>" }
Web Appsサービスを更新
ボットがユーザー割り当てマネージド ID アプリケーションである場合は、ボットのアプリ サービスを更新する必要がある場合があります。
「追加」をクリックすると、ユーザー割り当てスンのマネージドIDのリストの中にAzure Bot Serviceのリソース名があるのでそれを選択します。 これでAzure Bot ServiceからAzure Web Appsへの認証が設定できました。
LINE Developersコンソールで新規のリソースを作成
Providerの作成
LINE Developers コンソールへログインし、新規のProviderを作成します。
ここで設定したProviderがアカウント名になります。
Channelの作成
次に新規のチャネルを作成します。
必要な項目を入力してOKをクリックします。
資格情報の設定
次にLINEのチャネル > Azure Bot Serviceへの資格情報を設定していきます。
Basic Settings > channel secret Messageing API > Chanel access token
適用をクリック、生成されたWebhook URLをLINE Developers Consoleに登録する。
ここまででチャットボットの設定は終わりです! BotのQRコードから友達追加してりんなさんとおしゃべりができるようになりました。
終わりに
簡単に触ったサービスについての感想です。
Azure Bot Service
チャットボットのいいところは、だれでもお手軽にクラウドサービスにアクセスできるところだと思うので想定しているユーザーに応じて様々なチャネルが用意されているのはAzure Bot Serviceの魅力だと感じました。 今回はLINEをリリース先として試してみましたが、音声でアクセスできるAlexaだったり、ビジネス用途であればOutlookのチャネルを利用してみるのも面白いのではと想像が膨らむサービスでした。
rinna Developers
これらが全て無料で使えてしまうのはすごいと思いました。 ただ、Character Conversation API (Japanese)についてはチューニングなしだと受け答えがおかしかったりしてしまい、このまま何かのアプリに組み込むのは難しい印象でした。
他にも様々なAPIが用意されていて、特にText To Speechについては今後が楽しみです。
LINE Developersコンソール
触ったのが今回が初めてだったのですが、直感で操作できるUIでした。 LINEの開発者ツールもかなり充実していたので、別の機会にまた触れたいと思います。