インテントは、1 回の会話ターンでのエンドユーザーの意向を分類します。エージェントごとに多くのインテントを定義し、複数のインテントを結合して会話全体を処理します。エンドユーザが何かを書いたり読んだりすると(エンドユーザ表現と呼ばれます)、エンドユーザー表現をエージェントの最も適切なインテントとマッチングします。インテントのマッチングはインテント分類とも呼ばれます。
たとえば、天気に関するエンドユーザーの質問を認識し、回答する天気エージェントを作成できます。天気予報の質問のインテントを定義します。エンドユーザーが「天気予報は?」と言うと、Dialogflow によってエンドユーザーの表現と予測インテントがマッチングされます。エンドユーザー表現を使って、目的の天気予報の時間や場所など、有用な情報を抽出するインテントを定義することもできます。この抽出されたデータは、システムがエンドユーザーの天気クエリを実行する上で重要です。
基本的なインテントには次のものが含まれます。
- トレーニング フレーズ: エンドユーザーの発言に含まれる可能性のあるフレーズのサンプルです。エンドユーザー表現がこれらのフレーズのいずれかと似ている場合、Dialogflow によってインテントがマッチングされます。Dialogflow の組み込み機械学習は他の類似のフレーズと一緒にリストに展開されるため、すべての例を定義する必要はありません。
- アクション: 各インテントに対してアクションを定義できます。インテントが一致すると、Dialogflow によってシステムにアクションが提供されます。そのアクションを使用して、システムで定義された特定のアクションをトリガーできます。
- パラメータ: 実行時にインテントが一致すると、Dialogflow はエンドユーザー表現から抽出された値をパラメータとして提供します。各パラメータにはエンティティ タイプというタイプがあります。エンティティ タイプによって、データの抽出方法が指定されます。未加工のエンドユーザー入力とは異なり、パラメータは、ロジックの実行やレスポンスの生成に簡単に使用できる構造化データです。
- レスポンス: テキスト、音声、視覚的なレスポンスを定義してエンドユーザーに返します。エンドユーザーに回答を提供したり、エンドユーザーに詳細を質問したり、会話を終了したりできます。
次の図は、インテントのマッチングとエンドユーザーへのレスポンスの基本フローを示しています。
より複雑なインテントには次のものも含まれます。
- コンテキスト: Dialogflow のコンテキストは自然言語のコンテキストに似ています。ある人が「They are orange」と発言した場合、They が何を指すのかを理解するにはコンテキストが必要です。同様に、Dialogflow がそのようなエンドユーザー表現を処理するには、インテントを正しくマッチングするためにコンテキストが必要になります。
- イベント: エンドユーザーの発言からではなく、発生したイベントに基づいてインテントを呼び出すことができます。