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 と送信 REST の対話を管理できます。
注
ボット パッケージは、Visual Studio または Visual Studio Code を介して Bot Framework SDK を使用して処理することもできます。
作成するボットの種類を検討する
ボットを構築する前に、作成するボットの種類を決定する必要があります。 決定したら、次の質問を検討してください。
ボットは何に使用されますか? 構築するボットの種類を決定します。 計画は、実装する機能を定義するのに役立ちます。
ボットはどのような問題を解決する予定ですか? この回答を明確にしてください。 顧客の問題を解決することは、ボットを構築する際の主な考慮事項です。 また、代替エクスペリエンスよりもユーザーの問題をより適切に、簡単に、または迅速に解決する方法なども考慮する必要があります。
誰があなたのボットを使っていますか? ボットを設計する場合は、ユーザーがボットを使用することを想定しても安全です。 顧客ごとに異なるユーザー エクスペリエンスが期待されます。 対象ユーザーを把握することは、ボットの設計がどれほど複雑であるかを判断するのに役立ちます。 ボットに実装する言語を検討します。
ヒント
ボットを設計するときは、優れたユーザー エクスペリエンスを確保することが最優先事項です。
ボットはどこで使用されますか? ボットを実行するプラットフォームを決定する必要があります。 たとえば、モバイル デバイスで実行するように設計されたボットでは、ショート メッセージ サービス (SMS) メッセージの送信などの機能が必要な場合があります。
重要
発行エクスペリエンスはプラットフォームによって異なります。
Bot Framework Composer でボットのコア機能を開発する
Composer を使用して、ボットの設計、ビルド、拡張、テストを行うことができます。 Composer は、ボットを構築するためのビジュアル編集キャンバスです。 通常は、Azure Bot Service 作成プロセスの開始点です。
Composer のビジュアル デザイナーを使用して、ボットのコア機能を直感的に開発できます。 次の目的に使用できます。
- QnA Maker を使用して、自然言語理解機能をボットに追加します。 Language Understanding Intelligence Service (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 を使用してミドルウェアを追加し、ボットの機能を拡張する
ボットのソース コードを編集し、ボットの機能を拡張するには、Bot Framework SDK で Visual Studio、Visual Studio Code、または任意のサポートされている IDE を使用できます。 ボットを NuGet パッケージとしてパッケージ化して発行します。 簡単に統合できるように、これらのパッケージを Composer にインポートします。 ボット開発ライフサイクル全体を通じて、Composer と Bot Framework SDK の間をシームレスに移動できます。 このモビリティにより、開発タスクに最も効果的なツールを常に使用できます。
ボットを Azure に発行する
Azure Bot Service は、Azure でボット機能をホストします。 Composer インターフェイスから直接ボットを発行し、Composer 内でエンド ツー エンドの開発エクスペリエンスを作成します。
Azure Bot Service は、Azure Web App リソースでボットをホストします。 このリソースには、外部リソースに接続するためのコード、ロジック、および基本的な HTTP REST エンドポイントが含まれています。 Azure Bot Service には、既製の Bot Service チャネルも用意されています。 Bot Service Channels は、ボットの対話を、Facebook、Slack、Teams、テレフォニーなどの別のチャット サービス プロトコルに適応させるアダプター レイヤーを提供します。
Composer から発行する場合、発行プロセスでは、依存する Azure リソースを作成またはインポートすることもできます。 これらのリソースには、LUIS、QnA Maker、Azure Cosmos DB、Application Insights、Blob Storage が含まれます。