ページ

会話エージェント(Dialogflow CX)の会話(セッション)は、ステートマシンとして記述し、可視化できます。セッションの状態はページで表されます。

フローごとに多数のページを定義します。結合されたページでは、フローが設計されたトピックに関する完全な会話を処理できます。どの時点でも、正確に 1 つのページが現在のページであり、また現在のページがアクティブで、そのページに関連付けられたフローもアクティブであるとみなされます。すべてのフローには特別なスタートページがあります。フローが最初にアクティブになると、スタートページが現在のページになります。会話の各ターンでは、現在のページがそのまま表示されるか、別のページに遷移します。

各ページを、そのページが表す会話の状態に関連するエンドユーザーから情報を収集するように構成します。たとえば、次の図にピザ宅配業者の Food Order フローのページ(青で表示)作成します。図の Start ノードは Food Order フローの開始ページを表します。フローが完了すると、Confirmation フローに遷移します。

マルチフロー図の例

ページのライフサイクル

ページがアクティブになると、エージェントはいくつかの手順を遂行します。これには、エントリのフルフィルメント、フォームへの事前入力、状態ハンドラの評価、フォーム パラメータのプロンプト、エンドユーザーへのレスポンス メッセージの送信、ページの変更またはループの繰り返しなどが含まれます。

ページのライフサイクルの図

このプロセスの詳細は次のとおりです。

  1. ページにエントリのフルフィルメントが存在する場合は、そのフルフィルメントが呼び出されます。フルフィルメントによって提供される静的レスポンスはすべて、レスポンス キューに追加されます。

    部分的な回答が有効になっている場合、会話エージェント(Dialogflow CX)はレスポンス キューをフラッシュし、キュー内のすべてのメッセージを部分的な回答としてストリーミング API 呼び出し元に送信します。

    フルフィルメントに Webhook がある場合、Webhook が呼び出され、それによりキューに追加レスポンスが加えられます。これらの追加レスポンスで、レスポンス キューの即時フラッシュはトリガーされません。

  2. ページにフォーム パラメータがある場合は次のように事前入力されます。

  3. いずれかの状態ハンドラがスコープ内にある場合は、ハンドラの評価順序ルールに従って評価されます。 評価には、前のループのイテレーションで呼び出されたルート、イベント ハンドラ、または転送ハンドラが含まれます。状態ハンドラのいずれかが呼び出された場合は、次の一方または両方が発生する可能性があります。

    • 状態ハンドラに対してフルフィルメントが存在する場合、そのフルフィルメントは呼び出されます。フルフィルメントによって提供される静的レスポンスはすべて、レスポンス キューに追加されます。部分レスポンスと Webhook も、有効になっている場合は、実行されます。
    • ハンドラのターゲット フローまたはページが存在する場合、セッションはターゲットに遷移され、ページは無効になります。
  4. 次のすべてが該当する場合は、フォーム パラメータのプロンプトがレスポンス キューに追加されます。

    • ページにはフォームがあります。
    • 値の入力が必要なフォーム パラメータが他にもあります。
    • 手順 3 で担当者ハンドラが履行されなかった。
    • 部分レスポンスと Webhook も、有効になっている場合、実行されます。
  5. 残りのレスポンス キューのメッセージがエンドユーザーに送信され、エージェントはエンドユーザーの入力を待ちます。

  6. エンドユーザーの入力でフォーム パラメータへのプロンプトが表示された場合、パラメータを入力します。手順 3 に進みます。

ページのライフサイクル ナビゲーション

シミュレータの実行ステップ ビューアを使用すると、特定の会話ターンのステップを切り替えて、関連するエージェント ビルダーの要素を各ステップにフォーカスさせることができます。次の例では、エンドユーザーが「レンタカーを借りたい」と入力すると、5 つの実行と移行のステップがトリガーされます。

  1. 実行ステップ ビューアに、最初のステップの会話開始ページが表示されます。ここでは、これがデフォルトのスタートページです。 ページ実行ステップ 1.

  2. インテント car_rental.reservation_create の移行ルートがトリガーされます。実行ステップ ビューアが、このルートにフォーカスします。ここでの移行ターゲットが Pickup Location ページであることがわかります。ページ実行ステップ 2.

  3. エージェントが Pickup Location ページに入ります。ページ実行ステップ 3.

  4. エージェントは、Pickup Location ページのエントリのフルフィルメントを評価します。フルフィルメントが空であるため、何も起こりません。ページ実行ステップ 4.

  5. エージェントが必要なフォーム パラメータ pickup_location を収集しようとすると、このパラメータの初期プロンプト フルフィルメント メッセージがエンドユーザーに表示されます。 ページ実行ステップ 5.

また、最後の発話を取り消して、別の方法でさまざまなページ移行をテストすることもできます。

発話を元に戻します。

ページを作成する

ページを作成するには:

コンソール

  1. Dialogflow CX コンソールを開きます。
  2. ご自身の Google Cloud プロジェクトを選択します。
  3. エージェントを選択します。
  4. [Flows] セクションでページのフローを選択します。
  5. [Pages] セクションで追加ボタンをクリックします。
  6. ページの表示名を入力します。
  7. ページ表示名の横にある設定ボタンをクリックします。
  8. [編集] を選択します。
  9. 表示されたページ編集パネルのフィールドに入力します。
  10. [保存] をクリックします。

API

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

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

プロトコル V3 V3beta1
REST ページリソース ページリソース
RPC ページ インターフェース ページ インターフェース
C++ PagesClient 利用できません
C# PagesClient 利用できません
Go PagesClient 利用できません
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 利用不可 利用できません
Python PagesClient PagesClient
Ruby 利用不可 利用できません

ページデータ

ページのデータにアクセスするには:

コンソール

  1. Dialogflow CX コンソールを開きます。
  2. エージェント用の Google Cloud プロジェクトを選択します。
  3. エージェントを選択します。
  4. [Flows] セクションでフローをクリックします。
  5. フローのページが [Pages] セクションに入力されます。
  6. ページ表示名の横にある設定ボタンをクリックします。
  7. [編集] を選択します。
  8. 表示されたページ編集パネルのフィールドに入力します。
  9. [保存] をクリックして変更を保存します。

API

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

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

プロトコル V3 V3beta1
REST ページリソース ページリソース
RPC ページ インターフェース ページ インターフェース
C++ PagesClient 利用できません
C# PagesClient 利用できません
Go PagesClient 利用できません
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 利用不可 利用できません
Python PagesClient PagesClient
Ruby 利用不可 利用できません

ページには、次のデータが関連付けられています。

  • 表示名: 人が読める形式のページ名。
  • エントリ フルフィルメント(通称エントリ ダイアログ): これは、ページが最初にアクティブになったときに呼び出されるフルフィルメントです。
  • パラメータ: エンドユーザーから構造化された入力を取得するページフォーム内のパラメータ値です。
  • ルート: ページが有効になったときに、これらの状態ハンドラが呼び出される場合があります。詳細については、ページレベルのハンドラのルートをご覧ください。
  • ルートグループ: ページが有効なときに、これらのグループ内のルートが呼び出される場合があります。詳細については、ルートグループをご覧ください。
  • イベント ハンドラ: ページが有効なときに、これらのイベント ハンドラが呼び出される場合があります。詳細については、ページレベルのイベント ハンドラをご覧ください。

ページ設定

ページには以下の設定を使用できます。

ページ設定にアクセスするには:

コンソール

  1. Dialogflow CX コンソールを開きます。
  2. ご自身の Google Cloud プロジェクトを選択します。
  3. エージェントを選択します。
  4. [ページ] セクションでページにカーソルを合わせます。
  5. [オプション ] ボタンをクリックします。
  6. [ページ設定] を選択します。
  7. 設定をブラウジングまたは編集します。
  8. [保存] をクリックして変更を保存します。

API

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

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

プロトコル V3 V3beta1
REST ページリソース ページリソース
RPC ページ インターフェース ページ インターフェース
C++ PagesClient 利用できません
C# PagesClient 利用できません
Go PagesClient 利用できません
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 利用不可 利用できません
Python PagesClient PagesClient
Ruby 利用不可 利用できません

ページの削除

ページを削除するには:

コンソール

  1. Dialogflow CX コンソールを開きます。
  2. ご自身の Google Cloud プロジェクトを選択します。
  3. エージェントを選択します。
  4. [Flows] セクションでページのフローを選択します。
  5. [Pages] セクションで、ページ表示名の横にある設定ボタン をクリックします。
  6. [削除] を選択します。

API

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

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

プロトコル V3 V3beta1
REST ページリソース ページリソース
RPC ページ インターフェース ページ インターフェース
C++ PagesClient 利用できません
C# PagesClient 利用できません
Go PagesClient 利用できません
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 利用不可 利用できません
Python PagesClient PagesClient
Ruby 利用不可 利用できません