版本和环境

您可以创建代理流、Playbook 和工具的多个版本,并将其部署到单独的服务环境。

修改流、playbook 或工具时,您修改的是草稿。您可以随时将草稿保存为版本。 版本是您的 flow、playbook 或工具数据以及关联的智能体数据的不可变快照。对于流,这包括意图、实体、网络钩子、页面、路由组。对于 playbook,这仅包括示例。

保存草稿后,系统会将其部署到默认环境。创建特定版本后,您可以将其部署到自定义环境。您可以创建各种自定义环境,例如:

  • 测试
  • 开发
  • 生产

此外,您还可以创建特定于环境的 webhook,以便将生产环境与开发和测试环境隔离开来。

生产环境流量最佳实践

始终对生产流量使用版本

每当您团队中的开发者做出更改时,草稿都会更新。 草稿可能会意外损坏,尤其是在多人对代理具有写入权限的情况下。此外,最近修改的草稿可能与经过训练的模型不一致,因为训练可能会有延迟或需要手动执行。

您应始终对生产流量使用版本。 草稿资源应先进行测试,然后再将其升级为正式版,如果发现任何问题,您可以回滚到先前版本。

始终使用特定于环境的 webhook

更新代理时,您通常需要对 webhook 代码进行相互依赖的更新。在开发和测试这些更改期间,您希望:

  • 针对 webhook 代码更新测试代理更新。
  • 避免在完成测试之前将 webhook 代码部署到生产环境。

使用特定于环境的 webhook 可实现这两个目标。

考虑更改版本时可能出现的代理错误

如果您在会话处于活跃状态时更改生产环境中的版本,可能会导致某些活跃会话出现代理错误。如果旧版本和新版本彼此不一致,导致会话状态中断,则可能会发生这些错误。因此,您应计划在停机时间或非高峰时段更改版本。

将版本加载到草稿

您可以随时将某个版本加载到草稿中,以便对其进行修改并供默认环境使用。

将流版本加载到草稿可以更新代理中的多个资源,包括意图和实体等代理级别资源。使用控制台或 API 将版本加载到草稿时,您可以选择是否覆盖代理级别层资源。

同样,将 playbook 版本恢复为草稿会覆盖草稿中的现有 playbook 及其示例。恢复工具会覆盖草稿中的现有工具。

管理版本

如需管理版本,请执行以下操作:

控制台

如需列出流的当前版本,请执行以下操作:

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 点击共享资源标签页。
  5. 点击版本。
  6. 系统会列出代理流。选择一个。
  7. 系统会列出选定流的版本。

如需列出 playbook 的当前版本,请执行以下操作:

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择 playbook
  5. 点击版本记录。
  6. 点击查看版本记录。
  7. 系统会列出所选 playbook 的版本。

如需列出工具的当前版本,请运行以下命令:

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择工具
  5. 点击版本记录。
  6. 点击查看版本记录。
  7. 系统会列出所选工具的版本。

系统会显示每个资源的以下信息:

  • 显示名称:版本显示名称。
  • 版本 ID:版本的 ID。
  • NLU 类型 (NLU Type):流版本的 NLU 类型。
  • 创建时间戳:创建版本的日期和时间。
  • 状态:训练状态。只当状态标记为准备就绪后,流版本才可供使用。

如需创建新版本,请点击创建按钮,并提供该版本的显示名称和说明。

如需将某个特定流版本加载为草稿流,请执行以下操作:

  1. 将指针悬停在版本行上。
  2. 点击选项 按钮。
  3. 点击加载到草稿选项。
  4. 您可以选择在加载时覆盖代理级别数据。

如需删除特定流版本,请执行以下操作:

  1. 将指针悬停在某个版本行上。
  2. 点击选项 按钮。
  3. 点击删除版本选项。

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。 如需比较版本,请执行以下操作:

控制台

  1. 将指针悬停在版本行上。
  2. 点击选项 按钮。
  3. 点击比较版本选项。
  4. 选择另一个流版本或者草稿流以进行比较。
  5. 系统会显示对照比较。

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

管理环境

要管理您的代理环境,请执行以下操作:

控制台

如需列出代理的当前环境,请执行以下操作:

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 点击共享资源标签页。
  5. 点击环境。
  6. 系统会列出代理环境。

如需创建新环境,请点击创建按钮并提供信息。

如需选择 flow、playbook 和工具版本并配置环境,请点击相应环境并提供信息。

如需查看环境的修改记录,请点击列表中环境右侧附近的历史记录 按钮。

如需复制包含环境 ID 的环境资源名称,请点击列表中环境右侧附近的复制 按钮。

如需删除环境,请点击列表中环境右侧附近的删除 按钮。

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 版本。