ブラウザーだけで設定&編集可能!Azure Bot Service による Bot アプリ作成

2017 年 12 月にGA (プレビュー終了→一般提供開始) になった Azure Bot Service を利用すると、開発環境がなくてもブラウザーだけで&1ステップでチャットボット (Chatbot, 以下 Bot) が作成できます。

Azure Bot Service とは

Chatbot というのは、Web API であり、Web サービスのアプリケーション(Bot アプリ)の構築と、Bot アプリをホストする Web ホスティング環境 (Web サーバー) が必要です。Azure Bot Service では、予め用意されている Bot Framework による Bot アプリ のテンプレートを元に Bot アプリを作成し、Web ホストとして Azure App Service Web App または Azure Function を利用して Bot アプリをデプロイ(配置、公開)するサービスです。

また、Bot Channel と呼ばれる、Bot アプリに対して メッセージングツール (Microsoft Skype, Microsoft Teams, Slack, Facebook Messenger, ...) からメッセージを送受信できるインターフェースを備えています。

 

Azure Bot Service による Bot アプリ作成

Azure Portal からの新規 Azure Bot Service の作成

Azure Bot Service は作成や各種設定確認、変更など、操作は Azure Portal で行います。

[リソースの新規作成] で検索欄に [bot] と入力すると、Web App Bot、Function Bot, Bot Channels Registration という同じ Bot マークのサービスが 3 つ表示されます。新規に Bot アプリを作成する場合は、Web App Bot または Functions Bot をご利用ください。

  • Web App Bot
    • Azure Web App ベースの新規 Azure Bot Service 作成
      • Web ホスティング (Web サーバー)
      • サーバー稼働時間に対して課金 (※Free Plan は課金なし)
  • Function Bot
    • Azure Function ベースの新規 Azure Bot Service 作成
      • トリガー(各種Azure サービスへのアクション or 日時など)を元に行う機能を実装できるサービス
      • App Service (稼働時間(連続)) or 従量課金(都度起動時間の累計)
  • Bot Channels Registration
    • Bot Channel への登録
    • 作成済みの Bot アプリ (Bot Framework のテンプレートなどを用いて作成したもの) を登録

通常の Web 開発に慣れている (または Bot 開発に慣れていない) 場合は Azure Web App の方が分かりやすいかと思います。また、トリガー(ホストしている Bot アプリへのアクセス)をもとに Bot アプリを動作させたい場合 (予期されるアクセス数が少ない場合) は Azure Function を利用し、従量課金を選択することも可能です。

 

Azure Bot Service の新規作成時の設定内容

新規 Azure Bot Service の作成画面では以下の内容を設定します。

  • ボット名
    • Bot Channel への登録名 (BotID) になります。Bot Channel の中でユニークになる名前を設定します。
  • Bot アプリをデプロイする地域 (データセンター)
    • Azure Web App または Azure Function をデプロイできるデータセンターを選択可能です。
  • 価格レベル
    • Azure Bot Service の利用料金です。F0(無料のプラン)が用意されています。
    • Azure Bot Service 自体 とホストするサービス (Azure Web App または Azure Function) の料金は別になります。
  • アプリ名
    • ボット名と同じ名前が自動入力されます。BotアプリをホストするサービスのURLに使われます。azurewebsites.net の中でユニークになる名前を設定します。
  • ボットテンプレート
    • 言語は C# と Node.js から選択可能です
    • 以下、Bot Framework をベースとした 5 つのテンプレートから選択できます
      • Basic: 全ての Bot アプリのベーステンプレート (おうむ返し および 会話数カウント&リセット)
      • Form (Bot Framework の Form Flow によるフォーム型入力受付
      • Language Understanding (LUIS)
      • Question and Answer (QnAMaker)
      • Proactive Message : ユーザーが接続すると Bot からメッセージを送信する (デフォルトの Bot Framework テンプレートでは ユーザーの入力を待ちます)
    • LUIS や QnA Maker のテンプレート選択すると、LUIS や QnA Maker の App を新規作成できるほか、同じマイクロソフトアカウントに紐づいている作成済みの  LUIS や QnA Maker の App を簡単にに選択&設定できます。(他のアカウントに紐づけているものも手動で設定可能です)
  • App Service プラン (※Web App Bot の場合)
    • Bot アプリをホストするサービス (Web App) の料金プランを選択します。Free という無料プランを利用可能です。

 

Azure Portal での Azure Bot Service アプリの動作テスト

Azure Portal の Azure Bot Service  設定ペインのメニューから、作成した Bot アプリ の動作確認を行うことができます。

 

Azure Portal での Azure Bot Service のソースコード確認&開発

同じく Azure Portal からオンラインエディターで Bot アプリのソースコードを確認できます。

Web App Bot  (Azure Web アップベース) の場合は、設定ペインのメニュー>ビルド をクリックし、オンラインコードエディターを開く をクリックします。ブラウザーの別タブでオンラインエディターが表示されます。

ローカル環境で確認したい場合は、zipファイルをダウンロード をクリックすると、C# の場合 Visual Studio プロジェクトの形でダウンロードできます。また、Visual Studio Team Service や Git を紐づけて、ソースコード更新→ Azure のデプロイ を自動化することもできます。

 

Azure Bot Service で使用されているライブラリー群

使用されているパッケージは、オンラインエディターでは WWWROOT > package.config を参照して確認できます。

現在 (GA直後) のバージョンは以下になっています。

  • .NET Framework 4.6
  • ASP.NET.WebAPI 5.2.3
  • Bot Builder & Bot Connector v3.12

ほか、Bot アプリの構築に便利な Azure SDK が合わせて設定済みです。

 

Azure Bot Service の Bot Channel 関連設定

プレビュー時には Bot Channel に登録を行って発行される Bot ID, および Microsoft AppID, Password を手動でアプリ側に設定する必要がありました。Azure Bot Service GA 後、これらの作業は 新規 Azure Bot Service 作成時に自動で行われるようになりましたので、操作は不要です。

設定ファイル (オンラインエディターでは WWWROOT > web.config) を確認すると、"BotID" の設定はなく、"MicrosoftAppID" および "MicrosoftAppPassword" はブランクになっています。これらは Bot アプリをホストしている Azure Web App 側に自動で設定されています。

Azure Bot Service のアプリケーション設定ペインで  アプリケーション設定 をクリックして表示します。*アプリ設定* の項目に BotID, MicrosoftAppId, MicrosoftAppPassword が自動で追加&設定されており、値も確認できます。