インテント

インテントによっては、1 回の会話ターンにおけるエンドユーザーの意図(含意)を分類します。 ES インテントと比較すると、CX インテントは簡素化され、より再利用が可能なリソースになりました。

インテントには以下のデータが含まれます。

用語 定義
トレーニング フレーズ トレーニング フレーズは、エンドユーザーの発話に含まれる可能性があるフレーズのサンプルであり、エンドユーザー入力と呼ばれます。エンドユーザー入力がこれらのフレーズのいずれかと似ている場合、Dialogflow によりインテントと照合されます。考えられるすべてのサンプルを定義する必要はありません。Dialogflow の組み込み機械学習機能によって類似するフレーズが追加され、リストが拡張されます。
パラメータ トレーニング フレーズを定義してパラメータを使用し、エンドユーザー入力の特定部分から値を抽出する。

インテント マッチング

エンドユーザーが何かを書いたり読んだりすると(それをエンドユーザー入力と呼びます)、Dialogflow は入力をインテントのトレーニング フレーズと比較して、最も一致するものを見つけます。このプロセスはインテント マッチングと呼ばれます。インテント マッチングは、スコープ内のインテント ルート(インテント要件のある状態ハンドラ)に関連付けられたインテントに対してのみ行われます。

一致するインテントを検索する場合、Dialogflow はインテント検出信頼度(信頼スコアとも呼ばれます)を使用して一致候補をスコア付けします。この値の範囲は、0.0(完全に不確実)~1.0(完全に確実)です。インテントがスコア付けされると、次の 2 つの結果が考えられます。

  • 最高スコアのインテントの信頼スコアが分類しきい値設定以上の場合は、一致として返されます。
  • しきい値を満たすインテントがない場合、不一致イベントが呼び出されます。

トレーニング フレーズ

トレーニング フレーズは、エンドユーザー入力と呼ばれるエンドユーザーの発話に含まれる可能性のあるフレーズのサンプル フレーズです。目的ごとに、多くのトレーニング フレーズを作成します。エンドユーザー入力がこれらのフレーズのいずれかと似ている場合、Dialogflow によりインテントと照合されます。

たとえば、「ピザが欲しい」というトレーニング フレーズは、「ピザを入手する」や「ピザを注文する」など、そのフレーズに類似したエンドユーザーの入力を認識するようトレーニングします。

考えられるすべてのサンプルを定義する必要はありません。Dialogflow の組み込み機械学習機能によって類似するフレーズが追加され、ユーザーのリストが拡張されます。エージェントがさまざまなエンドユーザー入力を認識できるように、少なくとも 10~20 個(インテントの複雑さによって異なります)のトレーニング フレーズを作成する必要があります。たとえば、エンドユーザーの好きな色に関する入力をインテントに認識させるには、次のトレーニングフレーズを定義します。

  • 「I like red」
  • 「My favorite color is yellow」
  • 「black」
  • 「Blue is my favorite」

トレーニング フレーズにアノテーションを付ける

トレーニング フレーズの一部にアノテーションを付け、関連するパラメータを構成することによってデータの抽出方法を制御します。

たとえば、「What is the forecast tomorrow for Tokyo?」(東京の明日の予報は?)といったトレーニング フレーズを考えてみましょう。「tomorrow」には date パラメータ、「Tokyo」には location パラメータをそれぞれアノテーションとして付ける必要があります。トレーニング フレーズの一部にアノテーションを付けると、Dialogflow は、実行時にエンドユーザーが提供する実際の値の例であることを認識します。「What is the forecast on Friday for Sydney?」(金曜日のシドニーでの予報は?)などのエンドユーザー入力では、Dialogflow は「Friday」(金曜日)から date パラメータ、「Sydney」から location パラメータをそれぞれ抽出します。

コンソールを使用してエージェントを作成するときに、既存のエンティティ タイプと一致するテキストを含むトレーニング フレーズを追加すると、パラメータが自動的に作成されます。これらの部分はコンソールでハイライト表示されます。必要に応じて、これらのアノテーションやパラメータを編集できます。

トレーニング フレーズにコンソールで手動でアノテーションを追加するには、次の手順を行います。

  1. トレーニング フレーズのアノテーションを追加する部分を選択します。
  2. リストから目的のエンティティ タイプを選択します。
  3. 以下のパラメータ表にパラメータが作成されます。

API を使用してエージェントを作成する場合は、トレーニングフレーズ部分に手動でアノテーションを付ける必要があります。Intent 型で使用されている TrainingPhrase 型をご覧ください。

インテント リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST インテント リソース インテント リソース
RPC インテント インターフェース インテント インターフェース
C# 提供なし 利用できません
Go 提供なし 利用できません
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 提供なし 利用できません
Python IntentsClient IntentsClient
Ruby 提供なし 利用できません

Default Welcome Intent

エージェントを作成すると、デフォルトのウェルカム インテントが作成されます。一部の言語では、インテントに、最初のエンドユーザー入力と照合させるための簡単なトレーニング フレーズ(「Hi」や「Hello」など)があります。このインテントを必要に応じて編集できます。

API を使用すると、次のインテント ID でこのインテントを参照できます。

00000000-0000-0000-0000-000000000000

デフォルトのネガティブ インテント

エージェントを作成すると、デフォルトのネガティブ インテントが作成されます。このインテントに、ネガティブ サンプルとして機能するトレーニング フレーズを追加できます。エンドユーザーの入力が通常のインテントのトレーニング フレーズとわずかに似ていても、それらの表現を通常のインテントにマッチングさせたくない場合があります。

たとえば、部屋予約エージェントに「I'd like to book a room.」などのトレーニング フレーズが含まれているとします。一方で、エンドユーザーが部屋に関する本を購入したい場合、「I'd like to buy a book about rooms.」と言うかもしれません。このエンドユーザーの入力がインテントにマッチングしないようにするには、そのフレーズをネガティブ サンプルとして追加します。

API を使用すると、次のインテント ID でこのインテントを参照できます。

00000000-0000-0000-0000-000000000001

キャンセル インテント

会話中に、エンドユーザーが現在の会話トピックをキャンセルできます。たとえば、現在のアクティブなページが新しい予約の日付を求める一方で、エンドユーザーが新しい予約を作成しないことを決定した場合などです。 エンドユーザーは、「キャンセル」や「新しい予約を希望しません」などの発言を行います。この状況に対処するには、エージェントに 1 つ以上のキャンセル インテントを作成します。これらのキャンセル インテントには任意の名前を付けることができますが、名前に「cancel」を含めることが一般的です。これらのキャンセル インテントは、会話内の関連スコープ内にあるインテント ルートに関連付ける必要があります。これらのインテント ルートは、キャンセルを処理するための適切なページに遷移する必要があります。

キャンセル インテントのトレーニング フレーズでは、一般的なキャンセルとトピック固有のキャンセル試行の両方を処理する必要があります。次に例を示します。

  • キャンセル
  • 停止
  • キャンセル
  • キャンセル
  • 従来のコンソールに戻す
  • 戻る
  • 新しい予約を希望しない
  • 新しい予約をキャンセルする
  • 新しい予約を削除する

インテントを作成する

インテントを作成するには、次の手順を行います。

コンソール

  1. Dialogflow CX Console を開きます。
  2. GCP プロジェクトを選択します。
  3. エージェントを選択します。
  4. [Manage] タブを選択します。
  5. [Intents] をクリックします。
  6. [+作成] をクリックします。
  7. インテント データを入力します。
  8. [保存] をクリックします。

API

Intent 型の create メソッドをご覧ください。

インテント リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST インテント リソース インテント リソース
RPC インテント インターフェース インテント インターフェース
C# 提供なし 利用できません
Go 提供なし 利用できません
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 提供なし 利用できません
Python IntentsClient IntentsClient
Ruby 提供なし 利用できません

インテントを削除する

インテントを削除するには、次の手順を行います。

コンソール

  1. Dialogflow CX Console を開きます。
  2. GCP プロジェクトを選択します。
  3. エージェントを選択します。
  4. [Manage] タブを選択します。
  5. [Intents] をクリックします。
  6. 削除するインテントにカーソルを合わせます。
  7. [削除] ボタンをクリックします。

API

Intent 型の delete メソッドをご覧ください。

インテント リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST インテント リソース インテント リソース
RPC インテント インターフェース インテント インターフェース
C# 提供なし 利用できません
Go 提供なし 利用できません
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 提供なし 利用できません
Python IntentsClient IntentsClient
Ruby 提供なし 利用できません

インテント データにアクセスする

インテント データにアクセスするには、次の手順を行います。

コンソール

  1. Dialogflow CX Console を開きます。
  2. GCP プロジェクトを選択します。
  3. エージェントを選択します。
  4. [Manage] タブを選択します。
  5. [Intents] をクリックします。
  6. アクセスするインテントをクリックします。
  7. インテント データを表示または更新します。
  8. [保存] をクリックして変更を保存します。

API

Intent 型の get メソッドと patch/update メソッドをご覧ください。

インテント リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST インテント リソース インテント リソース
RPC インテント インターフェース インテント インターフェース
C# 提供なし 利用できません
Go 提供なし 利用できません
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 提供なし 利用できません
Python IntentsClient IntentsClient
Ruby 提供なし 利用できません