Bot Framework SDK とは

この記事の対象: SDK v4

Microsoft Bot Framework と Azure AI Bot Service は、インテリジェント ボットの構築、テスト、デプロイ、管理を行うライブラリ、ツール、サービスのコレクションです。 Bot Framework には、ボットを構築し、AI サービスに接続するためのモジュール式の拡張可能な SDK が含まれています。 このフレームワークを使用すると、開発者は音声を使用したり、自然言語を理解したり、質問に回答したり、その他さまざまなことができるボットを作成できます。

ヒント

ボットを構築するための Microsoft 製品とサービスの一覧、サポートするユーザー、それぞれの簡単な説明については、「ユース ケースに適したチャットボット ソリューションを選択する」を参照してください。

ボットとは何ですか?

ボットは、コンピューターを使用しているという感覚が薄く、人 (または知的なロボット) とやり取りしているように感じられるエクスペリエンスを提供します。 ボットを使用すると、単純な繰り返しタスク (ディナーの予約やプロファイル情報の収集など) を、ユーザーの直接の介入を不要にできる自動システムに移すことができます。 ユーザーは、テキスト、インタラクティブ カード、および音声を使ってボットと会話します。 ボットとの対話では、質問への素早い回答や、サービスへのアクセスをインテリジェントに提供する親身な会話などが可能です。

ボットについての 1 つの考え方は、会話インターフェイスを持つ Web アプリケーションです。 ユーザーは、Facebook、Slack、Microsoft Teams、カスタム アプリケーションなどのチャネルを介してボットに接続します。

  • ボットの構成方法とチャネルへの登録方法に応じて、対話はテキストまたは音声で行われ、また画像やビデオを含めることができます。
  • ボットはユーザーの入力を処理して、ユーザーが何を求めたか、または言ったかを解釈します。
  • ボットは入力を評価し、ユーザーに追加情報を要求したり、ユーザーの代わりにサービスへアクセスしたりといった関連タスクを実行します。
  • ボットはユーザーに応答して、ボットが実行中の内容または実行した内容をユーザーに知らせます。

A remote bot interacts with a user on a device via text, speech, images, or video.

ボットは、多くの場合、Azure でホストされ、API を使用してメッセージを送受信する Web アプリケーションとして実装されます。 ボットの機能は、ボットの種類とその目的によって大きく異なります。 ボットは、メッセージを受信してユーザーにエコーバックできます。コードはほとんど関係しません。 より複雑なボットは、さまざまなツールとサービスに依存して、さまざまなプラットフォームでより豊富なエクスペリエンスを提供できます。

ボットは、ファイルの読み取りと書き込み、データベースや API の使用、一般的な計算タスクの実行といった、他の種類のソフトウェアと同じ操作を実行できます。 ボットの特徴は、人と人のコミュニケーションで用いられるメカニズムを使用する点にあります。

Bot Framework と Azure AI Bot Service には、次の物が含まれます。

  • C#、JavaScript、Python、または Java でボットを開発するための Bot Framework SDK。 (Java SDK は、2023 年 11 月に終了する最終長期サポートで廃止されます)。
  • エンドツーエンドのボット開発に役立つ CLI ツール。
  • Bot Connector Service。ボットとチャネルの間でメッセージとイベントを中継します。
  • ボットの管理と構成のための Azure リソース

さらに、ボットでは次のような他の Azure サービスを使用できます。

  • インテリジェントなアプリケーションを構築するための Azure AI services
  • クラウド ストレージ ソリューションのための Azure Storage

ボットを構築する方法を確認する

Azure AI Bot Service と Microsoft Bot Framework には、ボットライフ サイクルのすべての段階を通じてボットを設計および構築するのに役立つ、統合されたツールとサービスのセットが用意されています。 C#、Java、JavaScript、TypeScript、および Python 用の SDK が存在します。 開発者は好みの開発環境やコマンド ライン ツールを選んで、ボットを作成できます。

Illustration of the steps in the bot life cycle.

プラン

あらゆる種類のソフトウェアと同様に、目標、プロセス、およびユーザーのニーズを完全に理解することが、成功するボットを作成するプロセスにとって重要です。 単純なボットを作成することも、音声、自然言語の解釈、質問への応答などの高度な機能を含めることもできます。

コードを書く前に、ボットのデザイン ガイドラインでベスト プラクティスを確認し、独自のボットに必要な事柄を見極めてください。

Build

通常、ボットは Azure でホストされる Web サービスです。 Azure では、さまざまなチャネルからメッセージやイベントを送受信するようにボットを構成できます。 任意の数の環境と言語でボットを作成できます。 ローカル開発用のボットを作成できます。

Azure AI Bot Service と Bot Framework を使用すると、他のライブラリとサービスを使用してボットの機能を拡張できます。 次の表では、SDK でサポートされる機能の一部について説明します。

特徴量 説明 詳細情報
メモリとストレージ ユーザーと会話の状態を保持する 状態の管理
自然な言語の解釈 ユーザー入力から情報を解釈して抽出する 言語の理解
リッチ カード テキストとその他のメディア (画像、オーディオ、ビデオ、ボタンなど) を組み合わせる メディアとカードを追加するには

ボット資産の作成、管理、テストに役立つコマンド ライン ツール。 詳細については、「Azure CLI」と「Bot Framework ツール」を参照してください。

完全なコード サンプルについては、「Bot Framework サンプル リポジトリ」を参照してください。 サンプルで、SDK の多くの機能が示されています。

テスト

ボットは様々なパーツが連携する複雑なアプリです。 そのため、他の複雑なアプリの場合と同様、興味深いバグが発生したり、期待どおりにボットが動作しなかったりすることがあります。 発行する前にボットをテストしてください。 ボットを使用できるようにリリースする前に、ボットをテストする方法をいくつか用意しています。

  • Bot Framework Emulator を使用してボットをローカルでテストする。 Bot Framework Emulator は、チャット インターフェイスだけでなく、ボットの動作方法とその動作の理由を理解するのに役立つデバッグ ツールと質問ツールも提供するスタンドアロン アプリです。 Bot Framework Emulatorは、開発中のボット アプリケーションと共にローカルで実行できます。

  • Web 上でボットをテストする。 Azure portal から設定すると、Web チャット インターフェイスを介してボットにアクセスすることもできます。 Web チャット インターフェイスは、ボットの実行中のコードに直接アクセスできないテスターなどに、ボットへのアクセスを許可する優れた方法です。

  • 現在のBot Framework SDK を使用してボットの単体テストを実行する。

公開

ボットを Web 上で使用する準備が整ったら、ボットを Azure に発行するか、独自の Web サービスまたはデータ センターに発行します。 パブリック インターネット上のアドレスを取得することが、ボットをサイト上やチャット チャネル内で稼働させる第一歩です。

のインスタンスに接続するときには、

ボットを、Facebook、Messenger、Slack、Microsoft Teams、Telegram、Twilio を介しての携帯ショートメール送信などのチャネルに接続します。 Bot Framework は、こうしたさまざまなプラットフォームすべてとの間でメッセージを送受信するために必要な作業のほとんどを行います。ボット アプリケーションでは、接続されているチャネルの数や種類に関係なく、統一され、正規化されたメッセージのストリームを受信します。 チャネルの追加については、チャネルに関するトピックをご覧ください。

評価

Azure portal で収集されたデータを使用し、ボットの機能とパフォーマンスを強化する機会を特定します。 トラフィック、待ち時間、統合などのサービス レベルのデータやインストルメンテーション データを取得できます。 Analytics では、ユーザー、メッセージ、チャネル データに関する会話レベルのレポートも提供されます。 詳しくは、分析情報の収集方法に関するページをご覧ください。

次のステップ