Bot Framework SDK を使ってみる
Microsoft Azure でのボット ソリューションは、次のテクノロジによってサポートされています。
- Azure AI Bot Service。 1 つまたは複数のチャンネルによるボットの配信と、他のサービスとの統合を可能にするクラウド サービス。
- Bot Framework Service。 ボットのアクティビティを処理するための REST API を提供する Azure AI Bot Service のコンポーネント。
- Bot Framework SDK。 REST インターフェイスを抽象化し、さまざまなプログラミング言語でのボット開発を可能にする、エンドツーエンドのボット開発用のツールとライブラリのセット。
Bot Framework SDK でのボットの開発
Bot Framework SDK によって提供される広範なツールとライブラリを使用して、ソフトウェア エンジニアはボットを開発できます。 SDK は、Microsoft C# (.NET Core)、Python、JavaScript (Node.js) などの複数のプログラミング言語で使用できます。
ボット テンプレート
Bot Framework SDK を使い始める最も簡単な方法は、それに用意されているいずれかのテンプレートを基にして、新しいボットを作成することです。
- 空のボット - 基本的なボット スケルトン。
- エコー ボット - ボットがメッセージ テキストをユーザーにエコーバックすることによってメッセージに応答する単純な "hello world" サンプル。
- コア ボット - Language Understanding サービスとの統合などの一般的なボット機能を含む、より包括的なボット。
ボット アプリケーションのクラスとロジック
テンプレート ボットは、Bot Framework SDK で定義されている Bot クラスに基づいています。これは、ユーザー入力を受け取って解釈し、適切に応答するロジックを、ボットに実装するために使用されます。 さらに、ユーザーのチャンネルとの通信を処理する Adapter クラスが、ボットによって使用されます。
ボットでの会話は、"アクティビティ" で構成されます。これは、会話へのユーザーの参加や、メッセージの受信などのイベントを表します。 これらのアクティビティは、ユーザーとボットの間の双方向の交換である "ターン" のコンテキスト内で発生します。 チャンネルでアクティビティが発生すると、Bot Framework Service によりプロセス アクティビティ メソッドを呼び出すことによって、ボットのアダプターにそれが通知されます。次に、アダプターによって、そのターンのコンテキストが作成され、ボットのターン ハンドラー メソッドが呼び出されて、アクティビティの適切なロジックが開始されます。
Bot Framework Emulator でのテスト
Bot Framework SDK を使用して開発されたボットは、Azure でクラウド サービスとして実行するように設計されていますが、ボットの開発時には、運用環境にデプロイする前にテストする方法が必要です。
Bot Framework Emulator アプリケーションを使用すると、ボットをローカルまたはリモートの Web アプリケーションとして実行し、ボットのテストに使用できる対話型 Web チャット インターフェイスから、それに接続することができます。 アクティビティ イベントの詳細がキャプチャされてテスト インターフェイスに表示されるので、メッセージを送信して応答を確認しながら、ボットの動作を監視できます。