Bot Framework SDK とは

適用対象: SDK v4

Bot Framework は、Azure Bot Serviceと共に、インテリジェント ボットを 1 か所で構築、テスト、デプロイ、管理するためのツールを提供します。 Bot Framework には、ボットを構築するためのモジュール式の拡張可能な SDK と、ツール、テンプレート、および関連する AI サービスが含まれています。 このフレームワークを使用すると、開発者は音声を使用し、自然言語を理解し、質問と回答などを処理するボットを作成できます。

ボットとは何ですか?

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

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

  • ボットは入力 に関する理由 を示し、関連するタスクを実行します。 これには、ユーザーに追加情報の要求や、ユーザーに代わってサービスにアクセスする方法が含まれます。
  • ボットは、ユーザーの入力に対して認識を実行して、ユーザーが何を求めているか、または言っているかを解釈します。
  • ボットは、ボットの実行内容または実行内容を伝えるためにユーザーに送信する応答を生成します。
  • ボットの構成方法とチャネルへの登録方法に応じて、ユーザーはテキストまたは音声を使用してボットと対話でき、会話には画像やビデオが含まれる場合があります。

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

ボットは、最新の Web アプリケーションとよく似ています。インターネット上に存在し、API を使用してメッセージを送受信します。 ボットの機能は、ボットの種類によって大きく異なります。 最新のボット ソフトウェアでは、さまざまなテクノロジーとツールを利用して、多岐にわたるプラットフォーム上でより複雑なエクスペリエンスを提供しています。 一方、シンプルなボットでは、コードをほとんど使わずに、メッセージを受信し、そのメッセージをそのままユーザーに返すことができます。

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

Azure Bot Serviceと Bot Framework のオファーは次のとおりです。

  • ボットを開発するための Bot Framework SDK
  • エンド ツー エンドのボット開発ワークフローに対応する Bot Framework ツール
  • ボットとチャネルの間でメッセージとイベントを送受信する Bot Framework Service (BFS)
  • Azure でのボットの展開とチャネルの構成

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

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

ボットを構築する方法

Azure Bot Serviceと Bot Framework には、構築プロセスを容易にする一連のツールとサービスが統合されています。 開発者は好みの開発環境やコマンド ライン ツールを選んで、ボットを作成できます。 C#、Java、JavaScript、Typescript、Python 用の SDK が存在します。 ボット開発のさまざまなステージ用にツールが用意されており、ボットの設計と構築に役立てることができます。

Overview of the bot life cycle

プラン

あらゆる種類のソフトウェアと同様に、目標、プロセス、およびユーザーのニーズを完全に理解することが、成功するボットを作成するプロセスにとって重要です。 コードを書く前に、ボットのデザイン ガイドラインでベスト プラクティスを確認し、独自のボットに必要な事柄を見極めてください。 単純なボットを作成することも、音声、自然言語の解釈、質問への応答などの高度な機能を含めることもできます。

Build

作成するボットは会話型インターフェイスを実装した Web サービスであり、Bot Framework サービスとやり取りして、メッセージとイベントを送受信します。 Bot Framework Service は、Azure Bot Service および Bot Framework のコンポーネントの 1 つです。 任意の数の環境と言語でボットを作成できます。 ローカル開発用 のボットを作成 できます。

Azure Bot Service および Bot Framework の一環として、ボットの機能の拡張に使用できる追加コンポーネントが用意されています。

機能 説明 Link
自然言語処理を追加する ボットによる自然言語の解釈、スペル ミスの理解、音声の使用、ユーザーの意図の認識を可能にします。 LUIS の使用方法
質問に答える ナレッジ ベースを追加して、より自然な会話方法でユーザーの質問に答えます。 QnA Maker の使用方法
複数のモデルを管理する LUIS や QnA Maker などの複数のモデルを使用している場合、ボットの会話中に、いつ、どのモデルを使用するかをインテリジェントに判断します。 Orchestrator の使用方法
カードとボタンを追加する グラフィックス、メニュー、カードなど、テキスト以外のメディアでユーザー エクスペリエンスを強化します。 メディアとカードを追加する方法

注意

上の表にすべてがリストされているわけではありません。 ボット機能についてさらに調べるには、メッセージの送信以下の左側の記事を参照してください。

さらに、ボット資産の作成、管理、テストに役立つコマンド ライン ツールも用意されています。 これらのツールを使用すると、LUIS アプリの構成、QnA サポート情報の構築、コンポーネント間のルーティングモデルの構築、会話のモック作成などを行うことができます。 詳細については、コマンド ライン ツール の README を参照してください。

また、SDK を通じて利用できる機能の多くを紹介しているさまざまなサンプルにアクセスすることもできます。 これらは、より機能豊富な出発点を探している開発者に最適です。

テスト

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

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

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

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

発行

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

接続する

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

Evaluate

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

次のステップ

ボットのこれらのケース スタディを確認するか、下記のリンクをクリックして、ボットを作成してください。