自然な言語の解釈
この記事の対象: SDK v4
ボットでは、構造化されたガイドのあるスタイルから、自由形式で制約のないスタイルまで、さまざまな会話のスタイルを使用できます。 ユーザーの言う内容に基づいて、ボットは会話フローで次に何を行うかを決定する必要があります。 Azure AI サービスには、このタスクに役立つ機能が含まれています。 これらの機能は、ボットが情報を検索したり、質問したり、ユーザーの意図を解釈したりするのに役立ちます。
ユーザーとボットとの対話は、自由形式であることが多く、ボットは文脈から自然に言語を理解する必要があります。 自由形式の会話では、さまざまなユーザー応答が存在する可能性があり、ボットは多かれ少なかれ構造やガイダンスを提供できます。 次の表は、ガイド付き質問と自由形式の質問の違いを示しています。
ガイド | 自由回答式 |
---|---|
私は旅行ボットです。 次のオプションから 1 つ選択してください: フライトを検索する、ホテルを検索する、レンタカーを検索する。 | 旅行の予約のお手伝いができます。 何がしたいですか? |
他に必要なことはありますか? [はい] または [いいえ] をクリックしてください。 | 他に必要なことはありますか? |
Azure AI サービスには、インテリジェントなアプリ、Web サイト、ボットを構築するための機能が用意されています。 これらの機能をボットに追加すると、ボットが自由形式のユーザー入力に対して、より適切に応答できるようになります。
この記事では、Azure AI サービスで使用できる機能の一部に対する Bot Framework SDK のサポートについて説明します。
- これらの機能をボットに設計する方法のヒントについては、「ナレッジ ボットの設計」を参照してください。
- Azure AI サービスの詳細については、Azure AI サービスのドキュメントを参照してください。
一般的なガイダンス
Azure AI サービスには、進化するテクノロジが組み込まれています。 Azure AI Language には、以前に個別のサービスとして実装されていたさまざまな機能が統合されています。 この記事では、新しい機能と古い機能とサービスの両方について説明し、それぞれの詳細情報を確認する場所も紹介します。
シナリオ | ガイダンス |
---|---|
新しいボット開発 | さまざまなスキルと分野のメンバーによるチームをサポートするように設計された Microsoft Copilot Studio の使用をご検討ください。 詳細については、「Copilot Studio」および「高度な AI 機能の有効化」をご覧ください。 |
既存の Bot Framework SDK ボット用の新しい言語プロジェクト | 会話言語理解 (CLU) や質問応答などの、Azure AI Language サービスの機能を使用することを検討してください。 |
既存の言語プロジェクトを含む既存のボット | 言語プロジェクトは引き続き機能しますが、Azure AI Language への移行を検討してください。 詳細については、この記事で後述する「既存の言語プロジェクトの移行」セクションを参照してください。 |
言語の理解
事前言語理解機能により、カスタム自然言語理解モデルを構築し、ユーザーのメッセージの全体的な意図を予測し、そこから重要な情報を抽出できます。
サービスまたは機能 | 説明 |
---|---|
会話言語理解 (CLU) | Azure AI Language サービスの機能。 |
Language Understanding (LUIS) | Azure AI サービス。 (CLU は LUIS の更新バージョンです)。 LUIS は 2025 年 10 月 1 日に廃止されます。 |
会話言語理解 (CLU)
会話言語理解 (CLU) を使用すると、ユーザーはカスタムの自然言語理解モデルを構築して、受信した発話の全体的意図を予測し、そこから重要な情報を抽出することができます。 CLU は、クライアント アプリケーションの入力テキストを理解するためのインテリジェンスを提供するだけであり、それ自体はアクションは実行しません。
ボットで CLU を使用するには、言語リソースと会話プロジェクトを作成し、言語モデルをトレーニングしてデプロイしてから、CLU API に要求を転送するテレメトリ認識エンジンをボットに実装します。
詳細については、以下を参照してください:
- 会話言語理解とは
- C#/.NET または JavaScript/node.js のテレメトリ認識エンジン インターフェイス リファレンス
- .NET 用 Azure Cognitive Language Services Conversations クライアント ライブラリ
Language Understanding (LUIS)
Note
Language Understanding (LUIS) は、2025 年 10 月 1 日に廃止されます。 2023 年 4 月 1 日以降は、新しい LUIS リソースを作成することはできません。
LUIS は、カスタムの機械学習インテリジェンスをユーザーの自然言語での会話に適用し、全体の意味を予測し、関連性のある詳細情報を引き出します。
ボットで LUIS を使用するには、LUIS アプリを作成、トレーニング、発行してから、LUIS 認識エンジンをボットに追加します。
詳細については、以下を参照してください:
質問と回答
質問と回答の機能により、ユーザーの質問に答えるナレッジ ベースを作成できます。 ナレッジ ベースは、FAQ、マニュアル、ドキュメントに記載されている半構造化コンテンツを表します。
サービスまたは機能 | 説明 |
---|---|
質問応答 | Azure AI Language サービスの機能。 |
QnA Maker | Azure AI サービスのサービス。 (質問応答は、QnA Maker の更新バージョンです)。 Azure AI QnA Maker は 2025 年 3 月 31 日に廃止されます。 |
質問応答
質問応答は、データ上に自然な会話レイヤーを作成できるクラウドベースの自然言語処理 (NLP) を提供します。 これは、任意の入力に対して、カスタム ナレッジ ベースの情報から最も適切な回答を見つける目的で使用されます。
ボットで質問の回答を使用するには、質問に回答するプロジェクトを作成してデプロイし、質問に応答する API に要求を転送する QnA Maker クライアントをボットに実装します。
詳細については、以下を参照してください:
- 質問応答を使用して質問に回答する
- 質問応答とは?
- C#/.NET または JavaScript/node.js 用 QnA Maker クライアント インターフェイス リファレンス
- .NET 用の Azure Cognitive Language Services の質問応答クライアント ライブラリ
QnA Maker
Note
Azure AI QnA Maker は 2025 年 3 月 31 日に廃止されます。 2022 年 10 月 1 日以降、新しい QnA Maker リソースまたはナレッジ ベースを作成できなくなります。
QnA Maker には既存の FAQ サイトから質問と回答を収集する組み込み機能があり、質問と回答の独自のリストを手動で構成することもできます。 QnA Maker は自然言語処理機能を備え、予想と若干異なる言葉遣いの質問に対しても回答を提供できます。 ただし、セマンティック言語を理解できないため、たとえば子犬が犬の一種であると判断することはできません。
ボットで QnA Maker を使用するには、QnA Maker サービスを作成し、ナレッジ ベースを発行して、QnA Maker オブジェクトをボットに追加します。
詳細については、以下を参照してください:
検索する
Azure Cognitive Search を使用すると、ボットがユーザーに対して、情報にファセットやフィルタリングを行う機能などのリッチな検索エクスペリエンスを提供できます。
- Azure AI 言語内の機能として Azure Cognitive Search を使用できます。
- Azure Cognitive Search サービスを直接使用できます。
Azure Cognitive Search
Azure Cognitive Search を使用して、データ ストアを検索、ファセット、フィルター処理するための効率的なインデックスを作成できます。
- Azure AI Language でコグニティブ検索を構成する方法については、「カスタム質問応答対応リソースを構成する」をご覧ください。
- コグニティブ検索の詳細については、「Azure Cognitive Search とは」を参照してください。
複数の機能を一緒に使用する
複数の会話トピックを理解する多目的ボットを作成する場合は、まずそれぞれの機能のサポートを個別に準備してから、それらを統合することができます。 ボットが複数の機能を組み合わせる可能性のあるシナリオは次のとおりです。
- 一連の機能を提供するボット。各機能には独自の言語モデルがあります。
- 複数のナレッジ ベースを検索して、ユーザーの質問に対する回答を検索するボット。
- 言語の理解、質問への回答、検索など、さまざまな種類の機能が統合されているボット。
次の表では、複数の機能を統合するさまざまな方法について説明します。
サービスまたは機能 | 説明 |
---|---|
オーケストレーション ワークフロー | 複数の質問応答、CLU、LUIS プロジェクトを合わせて使用できる Azure AI Language サービスの機能。 |
Bot Framework オーケストレーター | 意図のみの認識エンジン。特定のメッセージを最適に処理できる LUIS モデルまたは QnA Maker ナレッジ ベースを決定するために使用できます。 |
Custom | 独自のロジックを実装して、ユーザーの要求を処理する最適な方法を決定できます。 |
オーケストレーション ワークフローの使用
オーケストレーション ワークフローは機械学習のインテリジェンスを応用して、会話言語理解 (CLU) コンポーネント、質問応答プロジェクト、LUIS アプリケーションを接続するためのオーケストレーション モデルの構築を可能にします。
ボットでオーケストレーション ワークフローを使用するには、オーケストレーション ワークフロー プロジェクトを作成し、スキーマを構築し、モデルをトレーニングしてデプロイしてから、モデル API に対して意図予測のクエリを実行します。
詳細については、以下を参照してください:
Orchestrator
Note
Azure AI QnA Maker は 2025 年 3 月 31 日に廃止されます。 2022 年 10 月 1 日以降、新しい QnA Maker リソースまたはナレッジ ベースを作成できなくなります。
Language Understanding (LUIS) は、2025 年 10 月 1 日に廃止されます。 2023 年 4 月 1 日以降は、新しい LUIS リソースを作成することはできません。
Bot Framework Orchestrator は、意図のみの認識エンジンです。 Bot Framework CLI には、QnA Maker ナレッジ ベース と LUIS 言語モデルのコレクションから Orchestrator の言語モデルを生成するためのツールが含まれています。 その後、ボットは Orchestrator を使用して、ユーザーの入力に最も適切に応答できるサービスを決定できます。
Bot Framework SDK では、LUIS と QnA Maker の組み込みサポートが提供されます。 これにより、最小限の構成で LUIS と QnA Maker を使用してダイアログをトリガーしたり、質問に自動的に回答することができます。
詳細については、「Orchestrator で複数の LUIS モデルと QnA モデルを使用する」を参照してください。
カスタム ロジック
独自のロジックを実装するには、主に 2 つの方法があります。
- メッセージごとに、ボットがサポートするすべての関連サービスを呼び出します。 最適な信頼度スコアを持つサービスからの結果を使用します。 最適なスコアがあいまいな場合は、目的の応答を選択するようにユーザーに依頼します。
- 各サービスを優先順序で呼び出します。 十分な信頼度スコアを持つ最初の結果を使用します。
ヒント
異なるサービスや機能タイプの組み合わせを実装する際は、各ツールで入力をテストし、各モデルのしきい値スコアを決定してください。 サービスと機能によって異なるスコア付け基準が使用されるため、これらのツールで生成されるスコアは直接比較できません。
LUIS サービスと QnA Maker サービスはスコアを正規化します。 そのため、あるスコアは 1 つの LUIS モデルでは適切でも、別のモデルでは適していない場合があります。
既存の言語プロジェクトを移行する
古いサービスから Azure AI Language へのリソースの移行については、次を参照してください。
- LUIS、QnA Maker、Text Analytics からの移行
- LUIS アプリケーションとの下位互換性
- QnA Maker から質問応答への移行
- QnA Maker からカスタム質問応答への移行
その他のリソース
特定のプロジェクトまたはリソースを管理するには:
- Azure リソースを管理するには、Azure portal に移動します。
- Azure AI Language プロジェクトを管理するには、Language Studio portal に移動します。
- LUIS アプリを管理するには、Language Understanding (LUIS) portal に移動します。
- QnA Maker ナレッジ ベースを管理するには、QnA Maker portal に移動します。
特定の機能またはサービスのドキュメントについては: