复杂的对话框通常涉及多个对话主题。例如,披萨外卖代理可能具有“食品订单”、“客户信息”和“确认”作为不同的主题。每个主题都需要多轮对话才能让代理获取最终用户的相关信息。
流用于定义这些主题和关联的对话路径。每个代理都有一个名为默认初始流的流。对于简单的代理,您可能只需要这一个流。较复杂的代理可能需要更多的流,不同的开发团队成员可以负责构建和维护这些流。例如,披萨外卖代理的流可能如下所示:默认初始流
默认初始流会在您初始化代理时自动创建。它可以作为简单代理的唯一流,也可以作为包含多个流的更复杂代理的初始入口点。
使用 API 时,您可以使用以下 flow ID 引用默认开始 flow:
00000000-0000-0000-0000-000000000000
流的起始页
每个流都包含一个开始页面,在选择流时,该页面在控制台图表中表示为节点。此页面在流激活后会成为活跃页面。
与标准页面不同,起始页没有参数和回复消息。您仍然可以使用以下方法之一发送消息:
在 API 请求中引用起始页面
如需在运行时 API 请求中引用流程的起始页面,请使用 START_PAGE 作为页面 ID。
如需通过 API 对起始页面进行设计时更改,请使用 Flow 类型的 get 和 patch/update API 方法。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| C++ | FlowsClient | 不可用 |
| C# | FlowsClient | 不可用 |
| Go | FlowsClient | 不可用 |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | 不可用 | 不可用 |
| Python | FlowsClient | FlowsClient |
| Ruby | 不可用 | 不可用 |
创建流
如要创建流,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的项目。
- 在列表中找到代理。
- 点击流部分中的添加 add 按钮。
- 选择创建流。
- 输入流程的显示名称。
- 点击刚刚创建的流。
API
请参阅 Flow 类型的 create 方法。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| C++ | FlowsClient | 不可用 |
| C# | FlowsClient | 不可用 |
| Go | FlowsClient | 不可用 |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | 不可用 | 不可用 |
| Python | FlowsClient | FlowsClient |
| Ruby | 不可用 | 不可用 |
流数据
如需访问流程的数据,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的项目。
- 在列表中找到代理。
- 点击智能体显示名称。
- 点击流部分中的流。
- 流的页面会填充到页面部分中。如需了解如何修改页面,请参阅页面指南。
- 点击图表中的流。
- 系统会显示一个流程修改面板。使用此面板可浏览和修改其他流数据。
- 点击保存以保存更改。
API
对于流,请参阅 get 和 patch/update 以了解 Flow 类型。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| 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 | 不可用 | 不可用 |
以下数据与流相关联:
- 页面:构成流程的页面。
- 路由:流的起始页处于活跃状态时可用的路由。基于 intent 的路由也可以在其他流页面处于活跃状态时触发。如需了解详情,请参阅状态处理程序范围和流级路由。
- 事件处理脚本:在流程处于活跃状态时可能会调用的处理脚本。如需了解详情,请参阅流级事件处理脚本。
如需详细了解如何在不同级别应用数据,请参阅数据应用级别。
流设置
以下设置适用于流:
- 显示名称:流程的人类可读名称。
- 说明:流程的说明。
- 机器学习设置:代理机器学习设置中也介绍了流机器学习设置,并提供了访问方式。
- 语言自动检测:通过语言自动检测,您可以指定 Dialogflow CX 应自动识别和响应的最终用户语言。如需了解详情,请参阅多语言代理。
流锁定:锁定的流无法修改,包括对其子资源进行以下更改:
语音自适应设置:流级语音自适应设置。如需了解详情,请参阅手动语音自适应。
输入参数:任务 playbook 中可供流程使用的参数。
返回参数:流程返回给任务 playbook 的参数。
如需详细了解如何在不同级别应用数据,请参阅数据应用级别。
如要访问流设置,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的项目。
- 在列表中找到代理。
- 在流部分中,将指针悬停在相应流上。
- 点击选项 more_vert 按钮。
- 选择流设置。
- 浏览或修改设置。
- 点击保存以保存更改。
API
请参阅 Flow 类型的 get 和 patch/update 方法。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| C++ | FlowsClient | 不可用 |
| C# | FlowsClient | 不可用 |
| Go | FlowsClient | 不可用 |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | 不可用 | 不可用 |
| Python | FlowsClient | FlowsClient |
| Ruby | 不可用 | 不可用 |
删除流
如要删除流,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的项目。
- 在列表中找到代理。
- 在流部分中,将指针悬停在相应流上。
- 点击设置 more_vert 按钮。
- 选择删除。
API
请参阅 Flow 类型的 delete 方法。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| C++ | FlowsClient | 不可用 |
| C# | FlowsClient | 不可用 |
| Go | FlowsClient | 不可用 |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | 不可用 | 不可用 |
| Python | FlowsClient | FlowsClient |
| Ruby | 不可用 | 不可用 |
训练流
要训练流,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的项目。
- 在列表中找到代理。
- 点击代理设置。
- 打开机器学习标签页。
- 要训练单个流,请点击相应行中的训练。
- 如需训练多个流,请使用复选框选择它们,然后点击训练所选流 NLU 模型。
API
请参阅 Flow 类型的 train 方法。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| C++ | FlowsClient | 不可用 |
| C# | FlowsClient | 不可用 |
| Go | FlowsClient | 不可用 |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | 不可用 | 不可用 |
| Python | FlowsClient | FlowsClient |
| Ruby | 不可用 | 不可用 |
导出流
您可以通过两种方式导出流程:
- 数据导出:此操作会将您的 flow 导出为原始数据,以便导入到任何代理中。导出内容中包含流引用的资源(intent、实体和网络钩子)。按照以下步骤操作时,请选择原始数据格式。
图表导出(预览版):此选项会将您的流程导出为 draw.io XML 格式的可视化图表,该图表可导入到 Lucidchart 或 diagrams.net 等工具中。按照以下步骤操作时,请选择 XML 数据格式。
您可以使用以下选项导出流:
- 包含引用的流:导出目标流和所有递归引用的流,没有最大深度。导入期间,所有导出的流及其转换都会保留。
要导出流,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的项目。
- 在列表中找到代理。
- 在流部分中,将指针悬停在相应流上。
- 点击选项 more_vert 按钮。
- 选择导出流。
- 按照说明完成操作。
API
请参阅 Flow 类型的 export 方法。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| C++ | FlowsClient | 不可用 |
| C# | FlowsClient | 不可用 |
| Go | FlowsClient | 不可用 |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | 不可用 | 不可用 |
| Python | FlowsClient | FlowsClient |
| Ruby | 不可用 | 不可用 |
导入流
将流从源代理导入目标代理时,也会导入其引用的全局资源,例如 intent、实体和网络钩子。如果目标代理具有显示名称相同的资源,Dialogflow CX 会显示摘要,并提供三个选项来解决冲突:
- 替换现有资源:源代理资源将覆盖目标代理资源。
- 作为新资源导入:源代理资源将在名称中添加一个独特的后缀。
- 保留原始资源:目标代理资源将保持不变。
要导入流,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的项目。
- 在列表中找到代理。
- 点击流部分中的添加 add 按钮。
- 选择导入流。
- 按照说明完成操作。
API
请参阅 Flow 类型的 import 方法。
为流参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | Flow 资源 | Flow 资源 |
| RPC | Flow 接口 | Flow 接口 |
| C++ | FlowsClient | 不可用 |
| C# | FlowsClient | 不可用 |
| Go | FlowsClient | 不可用 |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | 不可用 | 不可用 |
| Python | FlowsClient | FlowsClient |
| Ruby | 不可用 | 不可用 |