复杂的对话框通常涉及多个对话主题。例如,披萨外卖代理可能具有“食品订单”、“客户信息”和“确认”作为不同的主题。每个主题都需要多轮对话才能让代理获取最终用户的相关信息。

用于定义这些主题和关联的对话路径。每个代理都有一个名为默认初始流的流。对于简单的代理,您可能只需要这一个流。较复杂的代理可能需要更多的流,不同的开发团队成员可以负责构建和维护这些流。例如,披萨外卖代理的流可能如下所示:

多流图示例。

Dialogflow CX 流与 Dialogflow ES 超级代理的子代理类似。流可以更好地控制对话,而不会产生额外费用。

默认初始流

创建代理时,系统会自动创建默认初始流。对于简单代理,您可以将此流用作唯一的流。对于较复杂的代理,您可以添加更多流,并将默认初始流用作对话的简单入口点。

使用 API 时,您可以使用以下流 ID 引用默认初始流:

00000000-0000-0000-0000-000000000000

流初始页面

每个流都在控制台中显示一个名为初始的特殊页面。在控制台中选择流后,初始页会显示为图表上的一个节点。当流最初处于活跃状态时,此页面将成为当前活跃的页面。

初始页没有普通页面那样的参数或响应消息。不过,您可以使用以下方法之一发送消息:

API 请求中的参考初始页

如需在运行时 API 请求中引用流的初始页,请使用 START_PAGE 作为页面 ID。

如需通过该 API 在设计时更改初始页,请针对 Flow 类型使用 getpatch/update API 方法。

为流参考选择协议和版本

协议 V3 V3beta1
REST 流资源 流资源
RPC 流接口 流接口
C++ FlowsClient 不可用
C# FlowsClient 不可用
Go FlowsClient 不可用
Java FlowsClient FlowsClient
Node.js FlowsClient FlowsClient
PHP 不可用 不可用
Python FlowsClient FlowsClient
Ruby 不可用 不可用

创建流

如要创建流,请执行以下操作:

控制台

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 点击部分中的添加 按钮。
  5. 选择创建流
  6. 输入流的显示名。
  7. 点击刚刚创建的流。

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 不可用 不可用

流数据

如需访问流的数据,请执行以下操作:

控制台

  1. 打开 Dialogflow CX 控制台
  2. 为代理选择 Google Cloud 项目。
  3. 在列表中找到代理。
  4. 点击代理显示名。
  5. 点击部分中的流。
  6. 流的页面Pages部分填充。如需了解有关修改页面的信息,请参阅页面指南
  7. 点击图表中的流。
  8. 系统会显示流修改面板。使用此面板可浏览和修改其他流数据。
  9. 点击保存以保存更改。

API

对于流,请参阅 getpatch/update 以了解 Flow 类型。

为流参考选择协议和版本

协议 V3 V3beta1
REST 流资源 流资源
RPC 流接口 流接口
C++ FlowsClient 不可用
C# FlowsClient 不可用
Go FlowsClient 不可用
Java FlowsClient FlowsClient
Node.js FlowsClient FlowsClient
PHP 不可用 不可用
Python FlowsClient FlowsClient
Ruby 不可用 不可用
对于页面,请参阅 Page 类型的 getpatch/update 方法。

为页面参考选择协议和版本

协议 V3 V3beta1
REST 页面资源 页面资源
RPC 页面界面 页面界面
C++ PagesClient 不可用
C# PagesClient 不可用
Go PagesClient 不可用
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 不可用 不可用
Python PagesClient PagesClient
Ruby 不可用 不可用

以下数据与流相关联:

如需详细了解数据在不同级别如何应用,请参阅数据应用级别

流设置

以下设置适用于流:

  • 显示名称:直观易懂的流名称。
  • 说明:流的说明。
  • 机器学习设置 流机器学习设置也可以在代理机器学习设置中访问和说明。
  • 语言自动检测 语言自动检测可让您指定 Dialogflow 应自动识别并响应哪些最终用户语言。如需了解详情,请参阅语言自动检测文档
  • 高级语音设置:这些语音设置可以选择替换相同的代理语音设置
  • 语音自适应设置:流级别的语音自适应设置,如需查看更详细的说明,请参阅手动语音自适应

如需详细了解数据在不同级别如何应用,请参阅数据应用级别

如要访问流设置,请执行以下操作:

控制台

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 将鼠标悬停在 Flows 部分中的流上。
  5. 点击选项 按钮。
  6. 选择流设置
  7. 浏览或修改设置。
  8. 点击保存以保存更改。

API

请参阅 Flow 类型的 getpatch/update 方法。

为流参考选择协议和版本

协议 V3 V3beta1
REST 流资源 流资源
RPC 流接口 流接口
C++ FlowsClient 不可用
C# FlowsClient 不可用
Go FlowsClient 不可用
Java FlowsClient FlowsClient
Node.js FlowsClient FlowsClient
PHP 不可用 不可用
Python FlowsClient FlowsClient
Ruby 不可用 不可用

删除流

如要删除流,请执行以下操作:

控制台

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 将鼠标悬停在 Flows 部分中的流上。
  5. 点击设置 按钮。
  6. 选择删除

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 不可用 不可用

训练流

要训练流,请执行以下操作:

控制台

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 点击代理设置
  5. 打开机器学习标签页。
  6. 要训练单个流,请点击相应行中的训练
  7. 如需训练多个流,请选中相应的复选框,然后点击训练所选的流 NLU 模型

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 不可用 不可用

导出流

您可以通过两种方式导出流:

  • 数据导出:这会将您的流导出为原始数据,以便导入到任何代理中。导出数据流时,该数据流引用的资源(意图、实体、网络钩子)也会导出。执行以下步骤时,请选择原始数据数据格式。

  • 图表导出预览版):这会将您的流程导出为直观图表。导出格式为 draw.io XML,因此您可以在 Lucidchartdiagrams.net 或任何其他可导入 draw.io 格式的图表工具中导入图表。 执行以下步骤时,请选择 XML 数据格式。

您可以使用以下选项导出流:

  • 包含引用的流 (Include 引用的流):导出目标流以及所有引用的流级别。引用的流包括目标流引用的流以及后续引用的流引用的流,没有最大深度。在导入期间,系统将导入所有导出的流,并保留这些流之间的转换。

要导出流,请执行以下操作:

控制台

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 将鼠标悬停在 Flows 部分中的流上。
  5. 点击选项 按钮。
  6. 选择导出流
  7. 按照说明完成操作。

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 不可用 不可用

导入流

在将流从来源代理导入目标代理时,该流引用的全局资源(意图、实体、网络钩子)随特定于流的数据一起导入。如果目标代理具有在源代理中找到的具有相同显示名称的全局资源,Dialogflow 会提供这些资源的摘要,并提供三个用于解决这些资源冲突的选项:

  • 替换现有资源:来源代理资源将覆盖目标代理资源。
  • 作为新资源导入:来源代理资源的名称中会带有一个独特的后缀。
  • 保留原始资源:目标代理资源将保持不变。

要导入流,请执行以下操作:

控制台

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 点击部分中的添加 按钮。
  5. 选择导入流
  6. 按照说明完成操作。

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 不可用 不可用