从 Dialogflow 迁移到 Actions Builder 项目

作为 Dialogflow 开发者,您可能希望将现有 Action 迁移到 Actions Builder。使用新的控制台方法开发 Action 并轻松迁移现有 Dialogflow 项目有诸多优势。本页面介绍了如何使用 Dialogflow/Actions Builder 迁移工具。

在学习本指南之前,您应该先查看 Dialogflow 到 Actions Builder 迁移概览,其中介绍了 Dialogflow 和 Actions Builder 之间的重要概念和差异。

迁移工具的用途

从 Dialogflow 到 Actions Builder 的迁移工具可以转换特定的 Dialogflow 元素(如 intent 和实体),以便与 Action Builder 搭配使用。

迁移工具会自动将以下 Dialogflow 元素迁移到 Actions Builder:

  • Dialogflow 的默认欢迎意图,作为主调用进行迁移。
  • 您的 Action 所支持的每种语言的所有训练短语和实体。
  • 没有输入上下文的意图,这些意图会作为全局意图进行迁移。
  • 具有一个输入上下文的 intent,会作为场景和 intent 进行迁移。
  • 具有一个输入上下文和槽位填充的 intent 会产生两个场景和一个 intent,用于处理向具有槽位填充的场景的过渡。
  • 使用 Dialogflow 回退、媒体和欢迎事件的 intent 会生成相关的 Actions Builder 处理程序和带有训练短语的 intent。
  • 使用 Dialogflow 日期和编号系统实体的 intent 会生成相关的 Actions Builder 系统类型。

迁移工具不会处理以下 Dialogflow 元素:

  • 具有多个输入上下文的 intent。您需要手动创建场景。
  • 在 Dialogflow 中使用自定义事件的意图。
  • 不是日期或数字的 Dialogflow 系统实体。这些实体是作为新类型创建的,但您需要手动添加同义词。
  • Dialogflow fulfillment 源代码。由于 API 版本不同,此代码不会迁移到 Builder。

访问迁移工具

如需访问迁移工具,请在 Actions 控制台中打开 Dialogflow 项目,然后前往 Develop > Actions

如果您不确定 Actions 控制台中使用的项目,请前往 Dialogflow 控制台,然后按以下步骤操作:

  1. 打开您要迁移的项目,然后点击设置图标。
  2. General > Project ID 下,点击 Action on Google 链接。此步骤会将您转到特定项目的 Actions 控制台。
  3. 依次点击 Develop(开发)> Actions(操作),然后点击 Preview migration(预览迁移)。

浏览信息幻灯片,然后点击开始迁移以查看迁移信息中心。

迁移信息中心

迁移信息中心会显示迁移选项,以及与要迁移的内容相关的信息。

可供选择的迁移方案

迁移工具有两种用于将 Dialogflow 项目迁移到 Actions Builder 的选项:

  • 作为新项目迁移(推荐)
    • 保持现有 Dialogflow 项目不变,并将副本迁移到新项目。
    • 显示名称和目录信息仍与现有生产项目相关联。请参阅推荐流程,了解如何使用迁移后的项目覆盖实际项目。
  • 迁移此项目
    • 替换现有的 Dialogflow 项目,并保留您为项目定义的现有显示名称和 Google 助理目录信息

迁移报告

您可以展开迁移报告的每个部分,以显示与以下信息相关的项目详情:

  • 要完全迁移的内容。
  • 哪些将会迁移,但需要在迁移后进行额外的设置。
  • 哪些内容不会迁移,需要手动添加(如果需要)。
  • 您的 Dialogflow 项目使用哪些在 Actions Builder 中不可用的功能。

您还可以下载迁移报告,以便在对项目进行迁移后更改时参考。

迁移后设置

虽然迁移工具有助于将 Dialogflow 项目的重要部分迁移到 Actions Builder,但还需要进行额外的开发才能设置未迁移的转换、提示和 webhook。

更新对话流程以使用场景

虽然迁移工具会根据具有一个输入上下文的 Dialogflow 意图生成场景,但这并不是一对一的关系。在采用新对话模型的 Actions Builder 中,部分迁移的场景可能没有意义。

您可能需要评估需要哪些场景,从而重新考虑对话流。根据 Action 的复杂程度,如果生成的某些场景不再适合对话流,你可能会更轻松地将其删除。

查看和更新全局 intent

没有输入上下文的 Dialogflow intent 会作为全局 intent 迁移到 Actions Builder。全局 intent 在整个对话中处于活跃状态,这意味着它们可以随时匹配。

全局 intent 还可用于在用户调用您的 Action 时,通过深层链接将他们引导至特定流程。请务必验证生成的全局 intent 是否应该处于活跃状态,是否应该可供全局范围内的用户访问。如需将全局 intent 更改为普通 intent,请点击该 intent,并将全局 intent 处理选项更改为 NO

合并具有相似训练短语的意图

如果您的某些意图具有非常相似的训练短语,您应该将这些意图整合为一个通用意图。这样做可以提高意图匹配的准确度。

例如,intent A 具有以下训练短语:

  • “好的,我想确保它已准备就绪”
  • “好的,准备好了”
  • “我们开始吧”

intent B 具有以下训练短语:

  • “好的,我想确保它已准备就绪”
  • “好的,我想我已经准备好了”

由于两个 intent 之间的训练短语相似,因此将 intent Aintent B 合并为一个更通用的 intent (intent C) 并删除原始 intent。在引用 intent Aintent B 的场景中使用 intent C

intent C 具有以下训练短语:

  • “好的,我想确保它已准备就绪”
  • “好的,准备好了”
  • “我们开始吧”
  • “好的,我想我已经准备好了”

更新事件处理

对于在 Dialogflow 中使用某些事件(fallbackmediawelcome)的意图,迁移工具会为该事件创建相关的系统 intent。如果同一 Dialogflow 意图具有训练短语,则系统会使用相同的训练短语另外创建一个意图。

如需在 Actions Builder 中完成事件设置,您需要根据需要添加网络钩子处理程序和转换。

添加系统 intent 来处理后备 intent

在 Dialogflow 中,后备 intent 用于处理 intent 无法识别用户输入的情况。Actions Builder 利用 NO_MATCHNO_INPOUT 系统 intent 来解释这些问题。

NO_MATCHNO_INPUT 系统 intent 最多可以向场景添加 3 次。例如,向场景添加三个 NO_MATCH intent 意味着您可以逐步提供关于 Action 在用户响应中所寻找内容的更多详细信息。

请务必在 Dialogflow 项目使用后备 intent 的位置添加系统 intent。NO_MATCHNO_INPUT 是常用的 Actions Builder 系统 intent 的一些示例。如需详细了解这些系统 intent,请参阅系统 intent

更新履单策略

将 Dialogflow fulfillment 代码迁移到 Actions Builder 是迁移流程中较大的环节之一。虽然网络钩子调用和常规执行方式的概念保持不变,但 Actions Builder 提供了用于重复使用函数的选项,并增加了更多网络钩子触发机会。

有鉴于此,您可能需要考虑重新访问项目的执行方式,以利用 Actions Builder 的功能:

  • 自定义 webhook 处理程序名称意味着您可以从不同场景的多个部分调用同一 webhook 函数。
  • 您可以根据进入场景、条件验证、槽位填充和 intent 匹配进行网络钩子调用。可以更精细地控制进行网络钩子调用的时间和地点,实现更具创意的执行解决方案。

在更新 fulfillment 代码时,请考虑应在何时何地触发 webhook 调用。您可以使用调用 webhook 选项在一个场景的多个部分中启用 webhook。如需详细了解如何启用 webhook,请参阅 Fulfillment 迁移指南的 webhook 部分。

迁移示例

由于每种工具使用的对话模型不同,从 Dialogflow 迁移到 Actions Builder 的项目的结构截然不同。Actions Builder 中使用的场景、提示和过渡,以及可重复使用的 webhook 处理程序等功能的使用会使迁移后项目的代码与原始代码明显不同。

比较迁移后的项目有助于您了解从 Dialogflow 迁移到 Actions Builder 时所需更改的类型和范围。您可以查看以下已迁移的示例项目,以比较实现:

示例项目 Dialogflow 代码 Actions Builder 代码
关于 Google 的小知识 项目代码 项目代码
交易 项目代码 项目代码
账号关联 项目代码 项目代码

本部分介绍了推荐的迁移流程,并允许您保留当前的显示(调用)名称、目录信息和历史分析数据。

此过程涉及使用两个不同的 Actions Builder 项目,这两个项目都是从同一个 Dialogflow 项目迁移而来。为清楚起见,这些项目称为以下项目:

  • experimental:此项目用于设置和测试迁移。
  • original:此项目当前已发布并向用户提供服务。

如需迁移项目,请执行以下操作:

  1. 使用 Dialogflow 的导出功能创建 Dialogflow 项目的备份。
  2. 转到 Actions 控制台并打开要迁移的项目。
  3. 依次点击 Develop(开发)> Actions(操作),然后点击 Preview migration(预览迁移)。
  4. 点击信息性幻灯片,然后点击开始迁移
  5. 选择作为新项目迁移
  6. 查看迁移报告,可以选择下载该报告以供日后参考。
  7. 点击迁移
  8. 输入“实验性”项目的名称,然后点击创建项目。记下项目 ID
  9. 完成所需的任何迁移后设置,并验证您的 Action 能否按预期运行。
  10. 使用 gactions CLI 拉取“实验性”项目的草稿

    gactions pull --project-id experimental-project-id

  11. 在 Actions 控制台中重新打开您的“原始”Dialogflow 项目。

  12. 依次点击 Develop(开发)> Actions(操作),然后点击 Preview migration(预览迁移)。

  13. 选择迁移此项目

  14. 点击迁移

  15. 依次点击“更多”图标 > 项目设置,然后记下项目 ID

  16. 在本地系统上,打开您拉取的“实验性”项目的 settings.yaml 文件,并将 projectId 替换为“原始”项目的项目 ID。

  17. 使用 gactions CLI 推送本地保存项目的草稿

    gactions push

  18. 请按照相应的步骤通过 Alpha 或 Beta 渠道发布 Action,或者将您的 Action 发布为正式版