Bot Framework ComposerでLINEボットを作ったときにつまづいたところ
はじめに
Bot Framework ComposerというGUIでBot Frameworkベースのチャットボットが作れるツールがあります。
これの公式チュートリアルで、郵便番号を送るとお天気を教えてくれるチャットボットが作れるようなので触ってみたいと思います。
せっかくチャットボットならば、ローカルで動かすだけではつまらないのでLINEで動くボットにします。
参考サイト様
上記を日本語でわかりやすく書いてくださっている記事
LINEボットにするときに参考にさせていただいた記事
作成方法(つまづいたところ)
作成方法といっても、上記参考サイト様の通りにやれば作れてしまうので、
ここでは私が詰まったところについて書いていきます。
Azureのリソース作成
Composerで作ったチャットボットをLINEなどで使えるようにするにはAzure Bot Serviceを使う必要があります。
そのために必要なAzureのリソースは下記のコマンド一つで作成することができます。
参考資料:Publish a bot to Azure - Bot Composer | Microsoft Docs
node provisionComposer.js --subscriptionId=<YOUR AZURE SUBSCRIPTION ID> --name=<NAME OF YOUR RESOURCE GROUP> --appPassword=<APP PASSWORD> --environment=<NAME FOR ENVIRONMENT DEFAULT to dev>
しかしこれがこのままではうまくいかず…
下記のようなエラーが出ます。
参考サイト様をたどった結果、上記のコマンドに--tenantIdのオプションを追加することで解決しました。
--tenantIdにはディレクトリIDをいれます。
node provisionComposer.js --subscriptionId=<YOUR AZURE SUBSCRIPTION ID> --name=<NAME OF YOUR RESOURCE GROUP> --appPassword=<APP PASSWORD> --environment=<NAME FOR ENVIRONMENT DEFAULT to dev> --tenantId=<ディレクトリID>
CosmosDBの無料プラン化
上記のコマンドでAzureリソースを作成すると、こんなラインナップのリソースが作られます。
CosmosDBがありますね。
実はこのCosmosDBは有料プランです。恐ろしい!
しかも今は作成した後にプラン変更というものができないようです。
なので、無料プランにするには、上記のコマンドを実行する前に、設定ファイルにパラメータを一つ追加します。
参考資料:Create a free-tier Azure Cosmos DB account
Composerで作成したbotのスクリプトの中に[template-with-preexisting-rg.json]というファイルがあります。
この中の下記の部分に一行追加します。
"enableFreeTier": true
Functionsは使わないつもりでいますが、念のため[function-template-with-preexisting-rg.json]のファイルにも同様のパラメータを入れておきます。
これでAzureのリソース作成のコマンドを実行すれば、CosmosDBは無料プランになっています。
App Serviceなど他のリソースも無償プランにしておけばかなり低コストでbotを使うことができます。
ボットの更新
ボットを作った後も、機能の追加や修正で更新することがあると思います。
いざ更新後に公開しようとすると、アクセストークンが期限切れしていて、Publishに失敗することがあります。
その場合には、下記のコマンドでアクセストークンを再発行します。
az account get-access-token
参考資料:Publish a bot to Azure - Bot Composer | Microsoft Docs
再発行したアクセストークンをpublish profileに書き直して保存すればOKです。
Bot analyticsを使う
せっかく作ったボットなので、アナリティクスが見たいです。
下記の項目を設定するだけで簡単に確認ができます。
- Application Insights インストルメンテーション キー
- Application Insights API キー
- Application Insights アプリケーション ID
参考資料:
Bot analytics - Bot Service - Bot Service | Microsoft Docs
Application Insights keys - Bot Service - Bot Service | Microsoft Docs
●Application Insights インストルメンテーション キーの取得
[リソースグループ]>[Application Insights]>[インストルメンテーション キー]の部分になります。
●Application Insights API キーの取得
[リソースグループ]>[Application Insights]>[APIアクセス]>[APIキーの作成]
表示名を記入し、[利用統計情報の読み取り]にチェックを入れてキーを生成します。
このAPIキーは生成直後しか確認できないのでしっかりコピーしておきます。
●Application Insights アプリケーション ID
[リソースグループ]>[Application Insights]>[APIアクセス]>[アプリケーションID]の部分になります。
上記3つを下記に設定します。
[ボット チャンネル登録]>[設定]>[分析]
保存が終わり、しばらくすると[分析]のところでボットの利用状況が確認できます。
完成品
作ったLINEボットのQRコードです。
「天気」と送ると郵便番号からお天気を教えてくれます。
ぜひ触ってみてください。
おわりに
ComposerはGUIなので、直感的に作りやすいと思います。
Azure Bot Serviceとの連携もしやすいので、いろんなチャンネルで使えそうなのも魅力です。
LUISやQnAmakerなどの自然言語処理系との連携も簡単そうなので、挑戦してみたいです。
ちなみに、今回の内容は下記勉強会でお話した内容になります。
くらでべさんのYouTubeチャンネルにアーカイブが上がると思いますので
ぜひそちらも見てみてください。
Composerだけでなく、TypeScriptやC#でのBot Frameworkの使い方が見れます!
デモがたくさんなのでおすすめです!
その時の資料です