您可以创建代理流、Playbook 和工具的多个版本,并将其部署到单独的服务环境。
修改流、playbook 或工具时,您修改的是草稿。您可以随时将草稿保存为版本。 版本是您的 flow、playbook 或工具数据以及关联的智能体数据的不可变快照。对于流,这包括意图、实体、网络钩子、页面、路由组。对于 playbook,这仅包括示例。
保存草稿后,系统会将其部署到默认环境。创建特定版本后,您可以将其部署到自定义环境。您可以创建各种自定义环境,例如:
- 测试
- 开发
- 生产
此外,您还可以创建特定于环境的 webhook,以便将生产环境与开发和测试环境隔离开来。
生产环境流量最佳实践
始终对生产流量使用版本
每当您团队中的开发者做出更改时,草稿都会更新。 草稿可能会意外损坏,尤其是在多人对代理具有写入权限的情况下。此外,最近修改的草稿可能与经过训练的模型不一致,因为训练可能会有延迟或需要手动执行。
您应始终对生产流量使用版本。 草稿资源应先进行测试,然后再将其升级为正式版,如果发现任何问题,您可以回滚到先前版本。
始终使用特定于环境的 webhook
更新代理时,您通常需要对 webhook 代码进行相互依赖的更新。在开发和测试这些更改期间,您希望:
- 针对 webhook 代码更新测试代理更新。
- 避免在完成测试之前将 webhook 代码部署到生产环境。
使用特定于环境的 webhook 可实现这两个目标。
考虑更改版本时可能出现的代理错误
如果您在会话处于活跃状态时更改生产环境中的版本,可能会导致某些活跃会话出现代理错误。如果旧版本和新版本彼此不一致,导致会话状态中断,则可能会发生这些错误。因此,您应计划在停机时间或非高峰时段更改版本。
将版本加载到草稿
您可以随时将某个版本加载到草稿中,以便对其进行修改并供默认环境使用。
将流版本加载到草稿可以更新代理中的多个资源,包括意图和实体等代理级别资源。使用控制台或 API 将版本加载到草稿时,您可以选择是否覆盖代理级别层资源。
同样,将 playbook 版本恢复为草稿会覆盖草稿中的现有 playbook 及其示例。恢复工具会覆盖草稿中的现有工具。
管理版本
如需管理版本,请执行以下操作:
控制台
如需列出流的当前版本,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 点击共享资源标签页。
- 点击版本。
- 系统会列出代理流。选择一个。
- 系统会列出选定流的版本。
如需列出 playbook 的当前版本,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择 playbook
- 点击版本记录。
- 点击查看版本记录。
- 系统会列出所选 playbook 的版本。
如需列出工具的当前版本,请运行以下命令:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择工具
- 点击版本记录。
- 点击查看版本记录。
- 系统会列出所选工具的版本。
系统会显示每个资源的以下信息:
- 显示名称:版本显示名称。
- 版本 ID:版本的 ID。
- NLU 类型 (NLU Type):流版本的 NLU 类型。
- 创建时间戳:创建版本的日期和时间。
- 状态:训练状态。只当状态标记为准备就绪后,流版本才可供使用。
如需创建新版本,请点击创建按钮,并提供该版本的显示名称和说明。
如需将某个特定流版本加载为草稿流,请执行以下操作:
- 将指针悬停在版本行上。
- 点击选项 more_vert 按钮。
- 点击加载到草稿选项。
- 您可以选择在加载时覆盖代理级别数据。
如需删除特定流版本,请执行以下操作:
- 将指针悬停在某个版本行上。
- 点击选项 more_vert 按钮。
- 点击删除版本选项。
API
请参阅 Version 类型的方法。
为版本参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | 版本资源 | 版本资源 |
| RPC | 版本接口 | 版本接口 |
| C++ | VersionsClient | 不可用 |
| C# | VersionsClient | 不可用 |
| Go | VersionsClient | 不可用 |
| Java | VersionsClient | VersionsClient |
| Node.js | VersionsClient | VersionsClient |
| PHP | 不可用 | 不可用 |
| Python | VersionsClient | VersionsClient |
| Ruby | 不可用 | 不可用 |
比较 flow 版本
创建流程版本后,您可以使用比较版本工具,对流程版本或草稿版本进行对照比较。此功能不适用于 playbook。 如需比较版本,请执行以下操作:
控制台
- 将指针悬停在版本行上。
- 点击选项 more_vert 按钮。
- 点击比较版本选项。
- 选择另一个流版本或者草稿流以进行比较。
- 系统会显示对照比较。
API
请参阅 Version 类型的 compareVersions 方法。
为版本参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | 版本资源 | 版本资源 |
| RPC | 版本接口 | 版本接口 |
| C++ | VersionsClient | 不可用 |
| C# | VersionsClient | 不可用 |
| Go | VersionsClient | 不可用 |
| Java | VersionsClient | VersionsClient |
| Node.js | VersionsClient | VersionsClient |
| PHP | 不可用 | 不可用 |
| Python | VersionsClient | VersionsClient |
| Ruby | 不可用 | 不可用 |
管理环境
要管理您的代理环境,请执行以下操作:
控制台
如需列出代理的当前环境,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 点击共享资源标签页。
- 点击环境。
- 系统会列出代理环境。
如需创建新环境,请点击创建按钮并提供信息。
如需选择 flow、playbook 和工具版本并配置环境,请点击相应环境并提供信息。
如需查看环境的修改记录,请点击列表中环境右侧附近的历史记录 history 按钮。
如需复制包含环境 ID 的环境资源名称,请点击列表中环境右侧附近的复制 content_copy 按钮。
如需删除环境,请点击列表中环境右侧附近的删除 delete 按钮。
API
请参阅 Environment 类型的方法。
为环境参考选择协议和版本:
| 协议 | V3 | V3beta1 |
|---|---|---|
| REST | 环境资源 | 环境资源 |
| RPC | 环境接口 | 环境接口 |
| C++ | EnvironmentsClient | 不可用 |
| C# | EnvironmentsClient | 不可用 |
| Go | EnvironmentsClient | 不可用 |
| Java | EnvironmentsClient | EnvironmentsClient |
| Node.js | EnvironmentsClient | EnvironmentsClient |
| PHP | 不可用 | 不可用 |
| Python | EnvironmentsClient | EnvironmentsClient |
| Ruby | 不可用 | 不可用 |
为会话调用指定环境
使用控制台模拟器或 API,您可以在进行运行时会话调用时指定环境。如果未指定环境,则使用默认环境。
控制台
使用控制台模拟器时,选择在环境中测试代理选项,然后选择环境。
API
如需为 detectIntent、streamingDetectIntent、matchIntent 和会话实体 REST 调用指定环境,请在 agent 和 sessions 路径参数之间插入 environments/environment-id,以更改网址。
例如,以下网址使用 6db409d7-57ac-41d7-83bd-89b8768e2745 环境 ID:
https://dialogflow.googleapis.com/v3/projects/my-project-id/locations/us/agents/my-agent-id/environments/6db409d7-57ac-41d7-83bd-89b8768e2745/sessions/my-session-id:detectIntent
为会话调用指定流版本
使用控制台模拟器或 API,您可以在进行运行时会话调用时指定一组流版本。所选流版本不一定需要在任何环境中引用。
控制台
使用控制台模拟器时,选择具有特定流版本的测试代理选项,然后选择流版本。
API
如需为 detectIntent、streamingDetectIntent、matchIntent 和会话实体 REST 调用指定 flow 版本,请在请求的 query_parameters.flow_versions 字段中提供所选 flow 版本。