Dialogflow CX の会話(セッション)は、ステートマシンとして記述し、可視化できます。CX セッションの状態はページで表されます。
フローごとに多数のページを定義します。結合されたページでは、フローが設計されたトピックに関する完全な会話を処理できます。どの時点でも、正確に 1 つのページが現在のページであり、また現在のページがアクティブで、そのページに関連付けられたフローもアクティブであるとみなされます。すべてのフローには特別なスタートページがあります。フローが最初にアクティブになると、スタートページが現在のページになります。会話の各ターンでは、現在のページがそのまま表示されるか、別のページに遷移します。
各ページを、そのページが表す会話の状態に関連するエンドユーザーから情報を収集するように構成します。たとえば、次の図にピザ宅配業者の Food Order フローのページ(青で表示)作成します。図の Start ノードは Food Order フローの開始ページを表します。フローが完了すると、Confirmation フローに遷移します。
ページのライフサイクル
ページがアクティブになると、エージェントはいくつかの手順を遂行します。これには、エントリのフルフィルメント、フォームへの事前入力、状態ハンドラの評価、フォーム パラメータのプロンプト、エンドユーザーへのレスポンス メッセージの送信、ページの変更またはループの繰り返しなどが含まれます。
このプロセスの詳細は次のとおりです。
- ページにエントリのフルフィルメントが存在する場合は、そのフルフィルメントが呼び出されます。フルフィルメントによって提供されるレスポンスはすべて、レスポンス キューに追加されます。
ページにフォーム パラメータがある場合は次のように事前入力されます。
- フォーム パラメータと同じ名前を持つ設定済みのセッション パラメータが、フォーム パラメータにコピーされます。
- ルートがこのページへの遷移をトリガーし、ルートが一致するインテントを持つ場合、フォーム パラメータと同じ名前を持つインテント パラメータはすべて、フォーム パラメータにコピーされます。
いずれかの状態ハンドラがスコープ内にある場合は、ハンドラの評価順序ルールに従って評価されます。 評価には、前のループのイテレーションで呼び出されたルート、イベント ハンドラ、または転送ハンドラが含まれます。状態ハンドラのいずれかが呼び出された場合は、次の一方または両方が発生する可能性があります。
- 状態ハンドラに対してフルフィルメントが存在する場合、そのフルフィルメントは呼び出されます。フルフィルメントによって提供されるレスポンスはすべて、レスポンス キューに追加されます。
- ハンドラのターゲット フローまたはページが存在する場合、セッションはターゲットに遷移され、ページは無効になります。
次のすべてが該当する場合は、フォーム パラメータのプロンプトがレスポンス キューに追加されます。
- ページにはフォームがあります。
- 値の入力が必要なフォーム パラメータが他にもあります。
- 手順 3 で担当者ハンドラが履行されなかった。
レスポンス キューのメッセージがエンドユーザーに送信され、エージェントがエンドユーザー入力を待機します。
エンドユーザーの入力でフォーム パラメータへのプロンプトが表示された場合、パラメータを入力します。手順 3 に進みます。
ページを作成する
ページを作成するには:
コンソール
- Dialogflow CX Console を開きます。
- GCP プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションでページのフローを選択します。
- [Pages] セクションで追加ボタンをクリックします。add
- ページの名前を入力します。
- ページ名の横にある設定ボタンをクリックします。more_vert
- [編集] を選択します。
- 表示されたページ編集パネルのフィールドに入力します。
- [保存] をクリックします。
API
Page
型の create
メソッドをご覧ください。
ページ リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | ページリソース | ページリソース |
RPC | ページ インターフェース | ページ インターフェース |
C# | 提供なし | 利用できません |
Go | 提供なし | 利用できません |
Java | PagesClient | PagesClient |
Node.js | PagesClient | PagesClient |
PHP | 提供なし | 利用できません |
Python | PagesClient | PagesClient |
Ruby | 提供なし | 利用できません |
ページデータ
ページのデータにアクセスするには:
コンソール
- Dialogflow CX Console を開きます。
- エージェントの GCP プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションでフローをクリックします。
- フローのページが [Pages] セクションに入力されます。
- ページ名の横にある設定ボタンをクリックします。more_vert
- [編集] を選択します。
- 表示されたページ編集パネルのフィールドに入力します。
- [保存] をクリックして変更を保存します。
API
Page
型の get
メソッドと patch/update
メソッドをご覧ください。
ページ リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | ページリソース | ページリソース |
RPC | ページ インターフェース | ページ インターフェース |
C# | 提供なし | 利用できません |
Go | 提供なし | 利用できません |
Java | PagesClient | PagesClient |
Node.js | PagesClient | PagesClient |
PHP | 提供なし | 利用できません |
Python | PagesClient | PagesClient |
Ruby | 提供なし | 利用できません |
ページには、次のデータが関連付けられています。
- 名前: フローの表示名。
- エントリ フルフィルメント(通称エントリ ダイアログ): これは、ページが最初にアクティブになったときに呼び出されるフルフィルメントです。
- パラメータ: エンドユーザーから構造化された入力を取得するページフォーム内のパラメータ値です。
- ルート: ページが有効になったときに、これらの状態ハンドラが呼び出される場合があります。詳細については、ページレベルのハンドラのルートをご覧ください。
- ルートグループ: ページが有効なときに、これらのグループ内のルートが呼び出される場合があります。詳細については、ルートグループをご覧ください。
- イベント ハンドラ: ページが有効なときに、これらのイベント ハンドラが呼び出される場合があります。詳細については、ページレベルのイベント ハンドラをご覧ください。
ページの削除
ページを削除するには:
コンソール
- Dialogflow CX Console を開きます。
- GCP プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションでページのフローを選択します。
- [Pages] セクションで、ページの名前の横にある設定ボタン more_vert をクリックします。
- [削除] を選択します。
API
Page
型の delete
メソッドをご覧ください。
ページ リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | ページリソース | ページリソース |
RPC | ページ インターフェース | ページ インターフェース |
C# | 提供なし | 利用できません |
Go | 提供なし | 利用できません |
Java | PagesClient | PagesClient |
Node.js | PagesClient | PagesClient |
PHP | 提供なし | 利用できません |
Python | PagesClient | PagesClient |
Ruby | 提供なし | 利用できません |