🤖

第3章 Azure AI Bot Service

2023/11/27に公開

1 Azure AI Bot Service の概要

Azure AI Bot Serviceとは、Microsoft Azureが提供するボットを構築するための統合開発環境です。Azure AI Bot Serviceでは、ローコードプラットフォームを用いたシンプルなボット構築からSDKを用いた高機能なボット構築まで、比較的簡単かつ迅速に行うことができます。また、構築したボットは、Webサイト、モバイルアプリ、Facebook、Microsoft Teamsなど、様々なプラットフォームに展開することができます。

2 Azure AI Bot Service の特徴

2.1 ローコードでの開発

Microsoftが提供するローコードプラットフォームであるPower Virtual Agentsと連携することで、ノーコードまたはローコードでボットを構築することができます。そのため開発者は、プログラミングやAIの専門知識がなくても、簡単な操作でボットを開発することができるようになります。Power Virtual Agentsでは、他のAzureサービスを利用することも可能なため、ローコードで効率的に高機能なボットを構築することができます。

2.2 様々な言語に対応

Bot Framework SDKを使用することで、Azure AI Bot Service用のボットを開発できます。このSDKではC#、Java、JavaScript、Pythonがサポートされているため、様々なプログラミング言語を使用して開発をすることができます。

※ JavaScriptとC#は引き続きサポートされますが、PythonとJavaは、2023年11月に終了する最終的な長期サポートで廃止されます。 そのため、今後Bot Framework SDKを利用する際は、JavaScriptまたはC#による開発が推奨されます。

2.3 複数のチャンネルへの展開

チャンネルというボットと通信アプリケーション間の接続機能を使用することで、Alexa、Microsoft Teams、Slackなどの様々なサービスへボットを展開することができます。そのため、開発者はチャンネルごとにボットを構築する必要がなくなり、効率的にボットを開発することができます。

3 開発オプション

3.1 Power Virtual Agents

Power Virtual Agentsは、Microsoftが提供するクラウドサービスである「Microsoft Power Platform」におけるサービスの一つであり、ローコードまたはノーコードでチャットボットを作成できるサービスです。Power Virtual Agentsでは、一般的な質問に対する簡単な回答の提供から、複雑な会話を必要とする問題の解決まで、様々なリクエストに対応するAI搭載チャットボットを作成できます。また、これらのチャットボットは、プログラミングやAIに関する専門的な知識がなくても作成することができます。

※ Azure AI Bot Serviceに関する公式のドキュメントにおいて、Power Virtual Agentsを使用したボットの構築が推奨されています。しかし、今回構築するボットは、Azure Cognitive SearchやAzure OpenAI Serviceの利用を必要とするため、より拡張性の高いBot Framework SDKを用いて開発します。

3.2 Bot Framework Composer

Bot Framework Composerは、後述するBot Framework SDKをベースとしたGUI上でボットを開発できるツールです。先ほど説明したPower Virtual Agents同様ノーコード/ローコードでボットを構築することができるため、開発者にとって開発のハードルが低いことが特徴です。従来的には、Power Virtual Agentsでサポートされていないアダプティブ カード、マルチセレクト オプションなどの機能をComposerで開発して、それをPower Virtual Agentsで呼び出す形で利用されていました。しかし、現在のPower Virtual Agentsでは、Composerなしでこれらの機能に対応できるようになっています。また、Power Virtual AgentsとComposerの統合が進んでいることとPower Virtual Agentsを使用したボットの構築が推奨されている現状を考えると、今後Composerをメインとしてボットを構築する機会はあまりないと言えます。

3.3 Bot Framework SDK

Bot Framework SDKは、チャットボットを開発するためのSDKです。このSDKには、ボットを構築するためのパッケージやボットのテンプレート等が含まれています。先述した通り、PythonとJavaは、2023年11月に終了する最終的な長期サポートで廃止されるため、今後新たにボットを開発する際は、JavaScriptかC#を用いることが推奨されます。

ノーコードで開発できるPower Virtual AgentsやBot Framework Composerと比較すると、プログラミングに関する知識が必要になるため、開発のハードルが高くなる一方で、拡張性が高く、高機能なボットを構築することができます。
 
前述したように今回ボットを構築するにあたって利用する開発オプションもこちらのBot Framework SDKです。そのためもう少しだけ詳しく説明していきます。

3.3.1 用語

ボットを開発する際に公式のドキュメント等を読むと、Bot Framework SDK特有の用語が出てくるので、まずは重要な用語の意味を確認しておきます。

  • アクティビティ(activity)

    ユーザー (またはチャネル) とボット間のすべての対話は、アクティビティとして表されます。ここでいう対話には、単純なテキストメッセージの送信だけでなく、画像の送信や音声入力、他のメッセージに対する反応などが含まれます。

  • ターン(turn)

    ターンは、ボットがユーザーから受信するアクティビティと、ボットが即時応答としてユーザーに送り返すアクティビティで構成されています。つまり、ユーザーがボットにメッセージを送信し、ボットがそれに応答するという一連のやり取りを1つのターンと考えることができます。

  • ターンコンテキスト(turn context)

    ターンコンテキストは、アクティビティに関する情報(送信者やメッセージ内容、アクティビティの処理に必要なその他のデータなど)を提供します。

  • ダイアログ(dialog)

    ダイアログは、ボットの対話管理を支援するための構造化されたコンポーネントです。対話の一連の流れを表し、特定の目的やタスクを達成するために使用されます。例えば、ユーザーに予約情報を尋ねるダイアログなどがあります。

  • ボットアダプター(bot adapter)

    ボットアダプターは、ボットとチャットプラットフォームとの間でメッセージの送受信を処理するコンポーネントです。アクティビティを受信し、ターンコンテキストを作成して応答を送信します。

  • ミドルウェア(middleware)

    ミドルウェアは、アダプターとボット ロジックの間に位置し、初期化中にアダプターのミドルウェア コレクションに追加されるクラスのことです。 SDKを使用することで、独自のミドルウェアを記述したり、他のユーザーによって作成されたミドルウェアを追加したりすることもできます。

3.3.2 仕組み

次に、エコーボットを例に、ボットの処理の流れを確認しておきます。


(引用:https://learn.microsoft.com/ja-jp/azure/bot-service/bot-builder-basics?view=azure-bot-service-4.0)

  1. エンドポイントからHTTPリクエストでメッセージが送信される
  2. Azure Bot ServiceからProcessActivityが実行される
  3. AdapterでTurnContextが作成され、OnTurnが実行される
  4. ボットから返信のためのSendActivityを実行する
  5. HTTPリクエストで応答のメッセージが送信される

4 価格

Azure AI Bot Serviceで提供されているチャンネルは、「Standard チャネル」と「Premium チャネル」に分類されます。Standardチャンネルには、Microsoft のファーストパーティサービス (Skype、Cortana、Microsoft Teamsなど) や、一般提供されているボットAPIを使用するサービス (Facebook、Slackなど) が含まれます。Premium チャネルでは、ボットを使用して、独自のアプリケーションやWebサイト内で、ユーザーと信頼できる通信を行うことができます。これらのチャネルでは、オープンソースのDirectLine とWeb Chatのクライアントをカスタマイズすることで、ユーザーのクライアント エクスペリエンスをカスタマイズできます。

Azure AI Bot Serviceの料金体系は、Free( F0 )とStandard( S1 )の2つのプランが「Standard チャネル」と「Premium チャネル」ごとにあります。基本的にStandard チャンネルは、無料で利用することができます。

Free ( F0 ) Standard ( S1 )
Standard チャネル メッセージ数無制限 メッセージ数無制限
Premium チャネル 10,000 メッセージ/月 1,000 メッセージあたり ¥74.738

(引用:https://azure.microsoft.com/ja-jp/pricing/details/bot-services/)

ボットの仕様によって上記の料金とは別に、Azure App ServiceやApplication Insights、Azure Cognitive Searchの利用料が発生することに注意してください。今回構築するボットでは、Azure AI Bot Serviceの他に、Azure App Service、Azure OpenAI Service、Azure Cognitive Searchを利用するので、別途最新の料金表をご確認ください。

Azure App Service
https://azure.microsoft.com/ja-jp/pricing/details/app-service/windows/

Azure OpenAI Service
https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/openai-service/

Azure Cognitive Search
https://azure.microsoft.com/ja-jp/pricing/details/search/

5 活用事例

Azure AI サービス と Microsoft Bot Framework を利用したVodafone の顧客サポート用ボット「TOBi」

Vodafone(ボーダフォン)は、イギリスにある世界最大級の携帯電話会社であり、そのデジタル戦略を他の技術分野にも拡大しています。デジタル変革の一環として、VodafoneはMicrosoft Azureサービスを利用して、TOBiという親しみやすいデジタルアシスタントを開発しました。また、Vodafoneは、このボットを自社のニーズに合わせてカスタマイズし、15言語で複数の市場に展開しました。

Vodafone South Africaは、対話型言語理解をさらに最適化する可能性に飛びつき、非公開プレビューでその調査を行いました。対話型言語理解における洗練された多言語機能に関するチームの経験から、この新機能を使用することで、Vodafoneがより多くの言語でより迅速に市場に参入し、より正確な会話と開発コストの削減により、顧客をより良くサポートできることがわかりました。

TOBiを通じて、Vodafoneは迅速で適切かつ魅力的なカスタマーサポートを提供し、顧客満足度を高め、運用コストの削減に貢献しています。

(引用:https://customers.microsoft.com/ja-JP/story/838350-vodafone-telecom-azure-cognitive-services)

6 参考

https://amateur-engineer-blog.com/create-bot-with-botframework/

https://www.rworks.jp/cloud/azure/azure-column/azure-entry/27164/#:~:text=Azure Bot Service とは、Azure が提供する、ボット,ボットを作成可能です。

https://cmc-japan.co.jp/blog/azure-bot-service/

https://learn.microsoft.com/ja-jp/azure/bot-service/?view=azure-bot-service-4.0

https://azure.microsoft.com/ja-jp/products/ai-services/ai-bot-service#features

お知らせ

もちろん、株式会社piponでも技術でお困りのことがある方はオンライン相談が可能です。
こちらから会社概要資料をDLできます!
お問い合わせ内容に「オンライン相談希望」とご記載ください。
お問い合わせはこちら

株式会社piponでは定期的に技術勉強会を開催しています。
ChatGPT・AI・データサイエンスについてご興味がある方は是非、ご参加ください。
技術勉強会についてはこちら

株式会社piponではChatGPT・AI・データサイエンスについて業界ごとの事例を紹介しています。ご興味ある方はこちらのオウンドメディアをご覧ください。
オウンドメディアはこちら

株式会社piponのテックブログ

Discussion