Flows

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

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

多流图示例。

默认初始流

初始化代理时,系统会自动创建默认初始流。它可以作为简单代理的唯一流程,也可以作为包含多个流程的更复杂代理的初始入口点。

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

00000000-0000-0000-0000-000000000000

流的起始页

每个流程都包含一个初始页面,当选择相应流程时,该页面会显示为控制台图表中的一个节点。此页面在流程激活后会成为活跃页面。

与标准网页不同,初始网页没有参数和响应消息。您仍然可以使用以下方法之一发送消息:

在 API 请求中引用起始页

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

如需通过 API 在设计时更改起始页,请使用 Flow 类型的 get 和 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 不可用 不可用

创建流

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

控制台

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的项目。
  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. 选择您的项目。
  3. 在列表中找到代理。
  4. 点击代理显示名。
  5. 点击流部分中的流。
  6. 流的页面已在页面部分填充。如需了解如何修改网页,请参阅网页指南。
  7. 点击图表中的流。
  8. 系统会显示流修改面板。使用此面板可浏览和修改其他流数据。
  9. 点击保存以保存更改。

API

对于流,请参阅 get 和 patch/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 类型的 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 不可用 不可用

以下数据与流相关联:

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

流设置

以下设置适用于流:

  • 显示名称:直观易懂的流名称。
  • 说明:流程的说明。
  • 机器学习设置:流机器学习设置也可以在代理机器学习设置中访问和说明。
  • 语言自动检测:借助语言自动检测功能,您可以指定 Dialogflow CX 应自动识别和响应的最终用户语言。如需了解详情,请参阅多语言代理。
  • 流程锁定:锁定的流程无法进行编辑,包括对其子资源进行以下更改:

    1. 无法创建、修改或删除网页。
    2. 无法创建、修改或删除版本。
    3. 无法创建、修改或删除流程级路由组。
    4. 如果锁定流程或锁定流程下的任何网页引用了代理级路由组,则无法删除该路由组,但仍可对其进行修改。
  • 高级语音设置:这些高级语音设置可以选择替换相同的代理语音设置。

  • 语音自适应设置:流程级语音自适应设置。如需了解详情,请参阅手动语音自适应。

  • 输入参数:任务 playbook 中可供流程使用的参数。

  • 返回参数:流程返回给任务 playbook 的参数。

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

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

控制台

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

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

删除流

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

控制台

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的项目。
  3. 在列表中找到代理。
  4. 将指针悬停在流部分中的流上。
  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. 选择您的项目。
  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 格式的直观图表,该图表可导入到 Lucidchart 或 diagrams.net 等工具中。按照以下步骤操作时,请选择 XML 数据格式。

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

  • 包含引用的流程:导出目标流程和所有递归引用的流程,没有最大深度限制。在导入期间,所有导出的流及其过渡都会保留。

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

控制台

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的项目。
  3. 在列表中找到代理。
  4. 将指针悬停在流部分中的流上。
  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 CX 会显示摘要,并提供三种用于解决冲突的选项:

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

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

控制台

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的项目。
  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 不可用 不可用