Azure Bot Service の仕組み

完了

このユニットでは、Bot Framework Composer を使用して、対話型のビジュアル デザイナーでボットを設計する方法について説明します。 Bot Framework Composer 内で AI と言語機能を使用してボットを拡張する方法について学習し、ボットの作成方法、ボット機能の拡張方法、Azure Bot Service でボットを公開する方法の基本的な知識を習得します。

ボット パッケージのアーキテクチャとは

Azure Bot Service および Bot Framework では、ボットの作成プロセスを完全にサポートしています。 サポートされているプロセスには、設計、ビルド、テスト、公開のタスクが含まれます。

ボット開発者は、Bot Framework Composer を使用して、"ボット パッケージ" を作成します。このパッケージには、入力チャネルと認証など、ボットの統合と接続に関する詳細と、ボットのロジックが含まれています。 ボット パッケージには、カスタムのボット コードも含まれています。 ボット パッケージは、Azure Bot Service によってホストされます。 Azure Bot は、ボットと対話できるように、プライマリ エンドポイントを提供するいくつかの追加機能を備えた Azure Web アプリと考えることができます。 ユーザーは、Bot Service を通じてボットと対話できます。 また、外部チャネルやその他の統合用の受信および送信の REST 対話を管理できます。

Note

Bot Framework SDK を使用して、Visual Studio または Visual Studio Code を通じてボット パッケージにサービスを提供することもできます。

Diagram of the Azure Bot Service architecture.

作成するボットの種類を検討する

ボットを構築する前に、作成しているボットの種類を決定する必要があります。 決定に際しては、次の質問を検討してください。

  • ボットはどのような用途で使用しますか? 構築するボットの種類を決定します。 計画を立てることで、実装する機能を定義できます。

  • ボットでどのような問題を解決しようとしていますか? これについては明確にしてください。 顧客の問題を解決することは、ボットを構築する際の主要な考慮事項です。 また、別のエクスペリエンスよりユーザーの問題を適切、簡単、迅速に解決する方法なども考慮する必要があります。

  • ボットは誰が使用しますか? ボットを設計する場合、ユーザーがそれを使用してくれると想定しているはずです。 期待されるユーザー エクスペリエンスは顧客によって異なります。 対象ユーザーが誰であるかを把握できれば、ボットの設計がどの程度複雑になるかを判断できます。 ボットに実装する言語についても検討してください。

    ヒント

    ボットを設計するときは、優れたユーザー エクスペリエンスを実現することが最優先事項になります。

  • ボットはどこで使用されますか? ボットをどのプラットフォームで実行するか決定する必要があります。 たとえば、モバイル デバイスで実行するように設計されたボットには、SMS の送信などの機能が必要になる場合があります。

    重要

    公開エクスペリエンスは、プラットフォームによって異なります。

Bot Framework Composer でボットのコア機能を開発する

Composer を使用すると、ボットを設計、ビルド、拡張、テストできます。 Composer は、ボットを構築するためのビジュアル編集キャンバスです。 通常は、Azure Bot Service の作成プロセスの開始点になります。

Composer のビジュアル デザイナーを使用すると、ボットのコア機能を直感的に開発できます。 次の目的に使用できます。

  • QnA Maker でボットに自然言語の認識機能を追加します。 LUIS、QnA、FAQ などの機能を使用できます。
  • 言語生成テンプレートを使用して、ボットのテキストと音声のバリエーション応答を作成します。
  • 複数の言語でボットを作成します。
  • 埋め込みの Web チャットを使用して、Composer 内で直接テストします。
  • ボットを Azure App Service と Azure Functions に公開します。
  • LUIS アプリや QnA Maker ナレッジベースなどの外部サービスを統合します。

ダイアログと会話フローを作成する

ダイアログでは、ボットとそのユーザーの会話を制御します。 ダイアログには、ボットの応答を定義する言語生成応答テンプレートが含まれており、レストランでディナーを予約したり、Outlook 予定表アイテムを作成したりするなど、タスクをボットでどのように実行するかの指示も含まれます。

多くのダイアログは線形的で、単純な質問と応答の順序で構成されます。 ただし、一部のダイアログには、高度なメッセージ交換ロジックも含まれています。 このロジックには、分岐、ループ、コンテキストベースの動的および適応型ダイアログが含まれる場合があります。 これらの種類のダイアログでは、通常、外部データを使用して、ステートフルなメッセージ交換データを維持し、必要に応じて会話中に中断します。

外部フローをスキルとその他のボットに含める

Composer のスキル、NuGet パッケージ、その他の Azure Bot Service ボットをボットにインポートすると、複雑な会話フローを作成できます。 入れ子になった一連のボットを作成して、さらに再利用可能なモジュール型のボット機能のセットを作成できます。 これらの小さいモジュール式コンポーネントを複数組み合わせると、さまざまな親ボットに一連の機能を提供できます。 たとえば、予定表エントリの管理に関する会話フローを処理するボットがあるとします。これには、"次のミーティングの日時" や "会議室が必要ですか?" などの入力と応答があります。ボットをスキルとしてパッケージ化すると、作成した他のボットにスキル (および関連する予定表の会話処理機能) を簡単に統合できます。

カード、画像、ボタンを使用してメッセージ交換を強化する

複数のビジュアルおよび対話型メソッドを使用すると、ボットのユーザーの会話を強化できます。 カードを使用して、リッチ テキスト、画像、ボタンベースのコンテンツを作成し、プレーン テキストと比べてより対話型のエクスペリエンスを提供します。 Composer には、サムネイル、サインイン、オーディオ、ビデオなど、複数の種類のカードが用意されています。

LUIS と QnA Maker で言語理解とインテリジェンスを拡張する

LUIS では、完全なインテントとエンティティ管理システムで自然言語処理を提供します。 以前に作成した LUIS アプリを統合したり、Composer 内に新しいアプリを作成して、信頼性に優れた自然言語理解機能をボットに追加できます。

QnA Maker はクラウドベースのサービスです。 これを使用すると、既存の FAQ 形式のドキュメントや Web サイトから質問と回答のペアを抽出できます。 その後、ナレッジの専門家が手動でキュレーションできるナレッジベースにその情報をインポートできます。 ボットは、QnA ナレッジベースと統合できます。 この統合により、特定の自然言語入力に対して最適な回答を見つけることができます。

Web チャットでボットをテストする

Web チャットを使用すると、ボットの機能を Composer で直接テストできます。 Web チャットは、ローカル ボット ランタイムでボットを実行します。これは、Azure に公開せずに、開発用マシンでボットをローカルでテストできることを意味します。 Web チャットには、ボットの機能のすべての側面をテストするための完全なデバッグ、トランスクリプト記録、ボット状態の検査機能があります。

Bot Framework SDK を使用してミドルウェアを追加し、ボット機能を拡張する

選択した Visual Studio、Visual Studio Code、またはサポートされている IDE と、Bot Framework SDK を使用して、ボット ソース コードを編集し、ボット機能を拡張します。 ボットをパッケージ化して NuGet パッケージとして公開します。 統合を容易にするために、これらのパッケージを Composer にインポートします。 ボット開発ライフサイクルを通じて、Composer と Bot Framework SDK の間でシームレスに移動できます。 このモビリティによって、開発タスクに最も効果的なツールを常に使用できるようになります。

ボットを Azure に公開する

Azure Bot Service では、Azure でボット機能をホストします。 Composer インターフェイスからボットを直接公開し、Composer 内でエンドツーエンドの開発エクスペリエンスを作成します。

Azure Bot Service では、Azure Web アプリ リソースでボットをホストします。 このリソースには、外部リソースに接続するためのコード、ロジック、基本的な HTTP REST エンドポイントが含まれています。 Azure Bot Service には、既製の Bot Service Channel も用意されています。 Bot Service Channel では、ボットの対話を別のチャット サービス プロトコル (Facebook、Slack、Teams、テレフォニーなど) に適応させるアダプター レイヤーが用意されています。

Composer から公開する場合、公開プロセスで、依存する Azure リソースを作成またはインポートすることもできます。 これらのリソースには、LUIS、QnA Maker、Azure Cosmos DB、Application Insights、Blob Storage が含まれます。