Flows

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

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

多流图示例。

默认初始流

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

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

00000000-0000-0000-0000-000000000000

Flow 的起始页

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

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

在 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. 选择您的项目。
  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

对于流,请参阅 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 CX 应自动识别和响应的最终用户语言。如需了解详情,请参阅多语言代理
  • 流程锁定:锁定的流程无法进行编辑,包括对其子资源进行以下更改:

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

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

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

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

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

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

控制台

  1. 打开 Dialogflow CX 控制台
  2. 选择您的项目。
  3. 在列表中找到代理。
  4. 将指针悬停在部分中的流上。
  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. 选择您的项目。
  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 格式的直观图表,该图表可导入到 Lucidchartdiagrams.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 不可用 不可用