多くの場合、複雑なダイアログでは複数の会話トピックが関与します。たとえば、ピザの配達エージェントの場合、料理の注文、顧客情報、確認という別個のトピックが考えられます。各トピックでは、エージェントがエンドユーザーから関連する情報を取得するため、複数の会話ターンを実行する必要があります。
フローは、これらのトピックと、関連する会話パスを定義するために使用されます。すべてのエージェントには、デフォルトの開始フローと呼ばれるフローが 1 つあります。単純なエージェントであれば、このフローのみで十分でしょう。より複雑なエージェントでは追加のフローが必要になる場合があります。さまざまな開発チームのメンバーに、これらのフローの構築と保守を担当させることができます。たとえば、ピザの配達エージェントのフローは次のようになります。Dialogflow CX のフローは、Dialogflow ES メガ エージェントのサブエージェントと同様の目的で機能します。フローを使用すると会話をより適切に制御できます。追加のコストは発生しません。
デフォルトの開始フロー
エージェントを作成すると、デフォルトの開始フローが自動的に作成されます。単純なエージェントの場合は、このフローを唯一のフローとして使用できます。より複雑なエージェントの場合は、フローをさらに追加して、デフォルトの開始フローを会話へのシンプルなエントリ ポイントとして利用できます。
API を使用する場合、次のフロー ID を使用してデフォルトの開始フローを参照できます。
00000000-0000-0000-0000-000000000000
フローのスタートページ
各フローには、コンソールに Start という名前の特別なページがあります。コンソールでフローを選択すると、スタートページがグラフ上のノードとして表示されます。フローが最初にアクティブになると、このページが現在のアクティブなページになります。
スタートページには、通常のページのようなパラメータやレスポンス メッセージがありません。ただし、次のいずれかの方法でメッセージを送信できます。
API リクエストのスタートページを参照する
ランタイム API リクエストでフローのスタートページを参照するには、START_PAGE
をページ ID として使用します。
設計時に API を使用してスタートページを変更するには、Flow
型の get
API メソッドと patch/update
API メソッドを使用します。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |
フローを作成する
フローを作成するには:
コンソール
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションの追加 add ボタンをクリックします。
- [Create flow] を選択します。
- フローの表示名を入力します。
- 作成したフローをクリックします。
API
Flow
型の create
メソッドをご覧ください。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |
フローデータ
フローのデータにアクセスするには:
コンソール
- Dialogflow CX Console を開きます。
- エージェント用の Google Cloud プロジェクトを選択します。
- リストでエージェントを見つけます。
- エージェントの表示名をクリックします。
- [Flows] セクションでフローをクリックします。
- フローのページが [Pages] セクションに入力されます。ページの編集については、ページガイドをご覧ください。
- グラフ上のフローをクリックします。
- フロー編集パネルが表示されます。このパネルから、追加のフローデータを閲覧、編集できます。
- [保存] をクリックして変更を保存します。
API
フローについては、Flow
タイプの get
と patch/update
をご覧ください。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |
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 | 利用不可 | 利用できません |
次のデータはフローに関連付けられています。
- ページ: フローを構成するページのリスト。
- ルート: フローのスタートページがアクティブなときに、これらのすべてのルートが呼び出される場合があります。フローの他のページがアクティブな場合は、インテント要件のあるルートが適用される場合があります。詳細については、ステート ハンドラのスコープと、フローレベルのルートをご覧ください。
- イベント ハンドラ: これらのハンドラは、フローがアクティブなときに呼び出される場合があります。詳細については、フローレベルのイベント ハンドラをご覧ください。
さまざまなレベルでデータがどのように適用されるかについては、データ アプリケーション レベルをご覧ください。
フローの設定
フローには次の設定を使用できます。
- 表示名: 人が読める形式のフローの名前。
- 説明: フローの説明。
- ML 設定 フローの ML 設定は、エージェントの ML 設定にも記載され、説明されています。
- 言語の自動検出 言語の自動検出を使用すると、Dialogflow が自動的に認識して応答するエンドユーザー言語を指定できます。詳細については、言語の自動検出のドキュメントをご覧ください。
フローロック: 子リソースへの次の変更を含め、ロックされたフローは編集できません。
- ページは、作成、編集、削除できません。
- バージョンは、作成、編集、削除できません。
- フローレベルのルートグループは、作成、編集、削除できません。
- ロックされたフローまたはロックされたフローの下のページによって参照されるエージェント レベルのルートグループは削除できませんが、編集は可能です。
音声の詳細設定: これらの音声の詳細設定では、必要に応じて同じエージェントの音声設定をオーバーライドできます。
音声適応の設定: 手動音声適応の詳細な手順を含むフローレベルの音声適応の設定。
さまざまなレベルでデータがどのように適用されるかについては、データ アプリケーション レベルをご覧ください。
フローの設定にアクセスするには:
コンソール
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションのフローにカーソルを合わせます。
- [オプション more_vert] ボタンをクリックします。
- [Flow settings] を選択します。
- 設定をブラウジングまたは編集します。
- [保存] をクリックして変更を保存します。
API
Flow
型の get
メソッドと patch/update
メソッドをご覧ください。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |
フローの削除
フローを削除するには:
コンソール
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションのフローにカーソルを合わせます。
- 設定 more_vert ボタンをクリックします。
- [削除] を選択します。
API
Flow
型の delete
メソッドをご覧ください。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |
フローのトレーニング
フローをトレーニングする手順は、次のとおりです。
コンソール
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [エージェント設定] をクリックします。
- [ML] タブを開きます。
- 単一のフローをトレーニングするには、対応する行の [トレーニング] をクリックします。
- 複数のフローをトレーニングするには、チェックボックスをオンにしてそれらのフローを選択し、[Train selected flow NLU model] をクリックします。
API
Flow
型の train
メソッドをご覧ください。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |
フローをエクスポートする
フローをエクスポートする方法は 2 つあります。
データ エクスポート: フローを元データとしてエクスポートするため、任意のエージェントにインポートできます。フローをエクスポートすると、フローによって参照されるリソース(インテント、エンティティ、Webhook)もエクスポートされます。以下の手順に沿って、元データのデータ形式を選択してください。
図のエクスポート(プレビュー): フローを視覚化した図としてエクスポートします。エクスポート形式は draw.io XML であるため、図は Lucidchart、diagrams.net など、draw.io 形式をインポートできる図ツールでインポートできます。以下の手順に沿って、XML データ形式を選択してください。
次のオプションを使用してフローをエクスポートできます。
- 参照フローを含める: ターゲット フローおよびすべてのレベルの参照フローをエクスポートします。参照フローには、後続の参照フローによって参照されるフローに加えて、ターゲット フローが参照するフローが含まれます。最大深度は設定されていません。インポート時に、エクスポートされたすべてのフローがインポートされ、これらのフロー間の遷移は保持されます。
フローをエクスポートするには:
コンソール
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションのフローにカーソルを合わせます。
- [オプション more_vert] ボタンをクリックします。
- [Export flow] を選択します。
- 手順に沿って操作して完了します。
API
Flow
型の export
メソッドをご覧ください。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |
フローをインポートする
ソース エージェントからターゲット エージェントにフローをインポートすると、フロー固有のデータとともに、フローによって参照されるグローバル リソース(インテント、エンティティ、Webhook)がインポートされます。ターゲット エージェントのグローバル リソースの中に、ソース エージェントと同じ表示名を持つものがある場合、Dialogflow はこれらのリソースの概要を示し、これらのリソースの競合を解決するための 3 つのオプションを次のように提示します。
- 既存のリソースを置き換える: ソース エージェントのリソースがターゲット エージェントのリソースを上書きします。
- 新しいリソースとしてインポート: ソース エージェント リソースの名前に、明確な接尾辞が追加されます。
- 元のリソースを保持: ターゲット エージェントのリソースは変更されません。
フローをインポートするには:
コンソール
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Flows] セクションの追加 add ボタンをクリックします。
- [Import flow] を選択します。
- 手順に沿って操作して完了します。
API
Flow
型の import
メソッドをご覧ください。
フロー リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | フローリソース | フローリソース |
RPC | フロー インターフェース | フロー インターフェース |
C++ | FlowsClient | 利用できません |
C# | FlowsClient | 利用できません |
Go | FlowsClient | 利用できません |
Java | FlowsClient | FlowsClient |
Node.js | FlowsClient | FlowsClient |
PHP | 利用不可 | 利用できません |
Python | FlowsClient | FlowsClient |
Ruby | 利用不可 | 利用できません |