Bot Framework SDK とは
適用対象: SDK v4
Microsoft Bot Frameworkと Azure Bot Service は、インテリジェント ボットの構築、テスト、デプロイ、管理を行うライブラリ、ツール、サービスのコレクションです。 Bot Framework には、ボットを構築し、AI サービスに接続するためのモジュール式の拡張可能な SDK が含まれています。 このフレームワークを使用すると、開発者は音声を使用するボットを作成したり、自然言語を理解したり、質問に回答したりできます。
ヒント
ボットを構築するためのMicrosoft製品とサービスの一覧、サポートするユーザー、それぞれの簡単な説明については、「ユース ケースに適したチャットボット ソリューションを選択する」を参照してください。
ボットとは何ですか?
ボットは、コンピューターを使用する感じが少なく、人やインテリジェントなロボットを扱うのと同じように感じるエクスペリエンスを提供します。 ボットを使用すると、ディナーの予約やプロファイル情報の収集など、単純で反復的なタスクを、人間による直接的な介入を必要としなくなった自動システムにシフトできます。 ユーザーは、テキスト、インタラクティブ カード、および音声を使ってボットと会話します。 ボットの対話は、質問に対する迅速な回答や、サービスへのアクセスをインテリジェントに提供する関連する会話です。
ボットを考える 1 つの方法は、会話インターフェイスを持つ Web アプリケーションです。 ユーザーは、Facebook、Slack、Microsoft Teams、カスタム アプリケーションなどのチャネルを介してボットに接続します。
- ボットの構成方法とチャネルへの登録方法に応じて、対話はテキストまたは音声で行い、画像やビデオを含めることができます。
- ボットは、ユーザーの入力を処理して、ユーザーが求めた内容や言ったことを解釈します。
- ボットは入力を評価し、ユーザーに追加情報を要求したり、ユーザーの代わりにサービスにアクセスしたりするなどの関連タスクを実行します。
- ボットはユーザーに応答して、ボットの実行内容または実行内容をユーザーに知らせます。
ボットは、多くの場合、Web アプリケーションとして実装され、Azure でホストされ、API を使用してメッセージを送受信します。 ボットの内容は、ボットの種類とその目的によって大きく異なります。 ボットは、メッセージを受信し、ほとんどコードを使用してユーザーにエコー バックできます。 より複雑なボットは、さまざまなツールとサービスに依存して、さまざまなプラットフォームでより豊かなエクスペリエンスを提供できます。
ボットは、ファイルの読み取りとファイルへの書き込み、データベースと API の使用、通常の計算タスクの実行など、他の種類のソフトウェアで実行できるのと同じ操作を実行できます。 ボットがユニークなのは、人間と人間のコミュニケーションで使用されるメカニズムの使用です。
Azure Bot Serviceと Bot Framework には次のものが含まれます。
- C#、JavaScript、Python、または Java でボットを開発するための Bot Framework SDK。 (Python および Java SDK は、2023 年 11 月に終了する最終的な長期サポートで廃止される予定です)。
- エンドツーエンドのボット開発に役立つ CLI ツール。
- Bot Connector Service。ボットとチャネルの間でメッセージとイベントを中継します。
- ボットの管理と構成のための Azure リソース。
さらに、ボットでは次のような他の Azure サービスを使用できます。
- インテリジェントなアプリケーションを構築するための Azure Cognitive Services
- クラウド ストレージ ソリューションのための Azure Storage
ボットを構築する方法
Azure Bot ServiceとMicrosoft Bot Frameworkは、ボットのライフ サイクルのすべての段階を通じてボットの設計と構築に役立つ、統合されたツールとサービスのセットを提供します。 C#、Java、JavaScript、TypeScript、Python 用の SDK が存在します。 開発者は好みの開発環境やコマンド ライン ツールを選んで、ボットを作成できます。
プラン
あらゆる種類のソフトウェアと同様に、目標、プロセス、およびユーザーのニーズを完全に理解することが、成功するボットを作成するプロセスにとって重要です。 単純なボットを作成することも、音声、自然言語の解釈、質問への応答などの高度な機能を含めることもできます。
コードを記述する前に、ボット の設計ガイドライン でベスト プラクティスを確認し、ボットのニーズを特定します。
Build
通常、ボットは Azure でホストされている Web サービスです。 Azure では、さまざまなチャネルからメッセージやイベントを送受信するようにボットを構成できます。 任意の数の環境と言語でボットを作成できます。 ローカル開発用 のボットを作成 できます。
Azure Bot Service と Bot Framework を使用すると、他のライブラリやサービスを使用してボットの機能を拡張できます。 次の表では、SDK でサポートされている機能の一部について説明します。
特徴量 | 説明 | 詳細情報 |
---|---|---|
メモリと記憶域 | ユーザーと会話の状態を保持する | 状態の管理 |
自然言語の理解 | ユーザー入力から情報を解釈して抽出する | 言語理解 |
リッチ カード | 画像、オーディオ、ビデオ、ボタンなど、テキストとその他のメディアを結合する | メディアとカードを追加する方法 |
ボット資産の作成、管理、テストに役立つコマンド ライン ツール。 詳細については、「 Azure CLI と Bot Framework Tools」を参照してください。
完全なコード サンプルについては、 Bot Framework サンプル リポジトリを参照してください。 サンプルは、SDK の多くの機能を示しています。
テスト
ボットは、さまざまな部分が連携する複雑なアプリです。 そのため、他の複雑なアプリの場合と同様、興味深いバグが発生したり、期待どおりにボットが動作しなかったりすることがあります。 発行する前にボットをテストしてください。 ボットを使用できるようにリリースする前に、ボットをテストする方法をいくつか用意しています。
Bot Framework Emulatorを使用してボットをローカルでテストします。 Bot Framework Emulator は、チャット インターフェイスだけでなく、ボットの動作方法とその動作の理由を理解するのに役立つデバッグ ツールと質問ツールも提供するスタンドアロン アプリです。 エミュレーターは、開発中のボット アプリケーションと共にローカルで実行できます。
Web 上でボットをテストする。 Azure portal から設定すると、Web チャット インターフェイスを介してボットにアクセスすることもできます。 Web チャット インターフェイスは、ボットの実行中のコードに直接アクセスできないテスト担当者や他のユーザーにボットへのアクセスを許可する優れた方法です。
現在の Bot Framework SDK を使用してボットを単体テストします。
公開
ボットを Web で使用できるようにする準備ができたら、 ボットを Azure にデプロイ するか、独自の Web サービスまたはデータ センターにデプロイします。 パブリック インターネット上のアドレスを取得することが、ボットをサイト上やチャット チャネル内で稼働させる第一歩です。
接続する
ボットを、Facebook、Messenger、Slack、Microsoft Teams、Telegram、SMS などのチャネルに Twilio 経由で接続します。 Bot Framework は、これらすべての異なるプラットフォームからメッセージを送受信するために必要な作業のほとんどを行います。ボット アプリケーションは、接続されているチャネルの数と種類に関係なく、メッセージの統一された正規化されたストリームを受け取ります。 チャネルの追加については、チャネルに関するトピックをご覧ください。
Evaluate
Azure portal で収集されたデータを使用し、ボットの機能とパフォーマンスを強化する機会を特定します。 トラフィック、待ち時間、統合などのサービス レベルのデータやインストルメンテーション データを取得できます。 Analytics では、ユーザー、メッセージ、チャネル データに関する会話レベルのレポートも提供されます。 詳しくは、分析情報の収集方法に関するページをご覧ください。