从 Dialogflow 迁移到 Actions Builder 的迁移工具

Actions Builder 是针对 Google 助理构建应用的最佳方式,因为它可帮助您以简化的方式构建对话型 Action。Actions Builder 是一个基于 Web 的 IDE,已集成到 Actions 控制台中,并提供以下功能:

  • 用于控制 Action 对话的可视化工作流和基于状态的方式。
  • 加快原型设计并缩短延迟时间。
  • 用于构建、分析和调试对话型 Action 的单一界面。

如果您使用 Dialogflow 构建的对话型 Action,则可以在 Actions 控制台中选择将项目迁移到 Actions Builder

迁移原因

虽然不需要迁移 Dialogflow 代理,并且您的 Action 仍可在支持 Google 助理的设备上正常运行,但使用 Actions Builder 和 Actions SDK 可带来诸多好处。

  • 使用 Actions SDK 和 CLI 改进了工具

    • 借助 Actions SDK 和 CLI,您可以构建复杂的项目并轻松与团队协作。对话设计人员可以先在 Actions Builder 中构建对话流程。然后,开发者可以将项目下载到基于文件的结构,并继续使用他们喜欢的开发工具和版本控制系统构建功能。通过将项目推送回 Actions Builder,其他团队成员可以继续构建、测试和部署 Action。
  • 更好地遵循对话设计最佳实践

    • 通过自定义每个场景中的后备 intent,您可以在对话中的任何时间点提供“无输入”和“无匹配”响应。
    • 得益于基于状态的图形化方法打造对话体验,设计人员和开发者可以轻松协作。
  • 简化本地化

    • 可以在一个页面上修改 intent、场景和类型的所有可本地化内容(例如训练短语、提示和类型同义词)。

改进了对话实现

Actions Builder 为 Actions 控制台带来了很多改进,并简化了开发流程。本部分将介绍 Actions Builder 如何简化和简化 Action 开发流程。

意图的可重用性

在 Dialogflow 中,网络钩子逻辑与 intent 相关联,这意味着 intent 不能与其他网络钩子重复使用。如果您想要使用相同的训练短语,但具有不同的 webhook 逻辑,则必须为每个网络钩子逻辑用例创建引用不同处理程序名称的其他 intent。

在 Actions Builder 中,intent 包含训练短语和实体,但 webhook 是独立的。这种方法意味着您可以对同一 intent 使用不同的 webhook 处理程序,从而提高灵活性。

改进了对话流程的可视化

在 Dialogflow 中,上下文指示在对话中的特定时间点更有可能匹配的意图。

Actions Builder 使用场景(而不是上下文)来处理可在对话的不同部分访问哪些 intent

用户进入场景时,过渡会定义用户可以采取的对话路径。转换可以基于条件逻辑以及自定义或系统 intent 匹配。

借助构建器的界面,您可以轻松了解过渡如何连接场景。在图 1 中,场景 guess_game 过渡到 suggested_new_game 场景 (1)。您还可以在场景中看到两个无障碍 intent:generic_nogeneric_yes。根据匹配的 intent,suggested_new_game 场景会过渡到 show_menurouting_game 场景 (2)。

图 1. 场景的图形视图,其中包含场景的过渡 (1) 和 intent 处理 (2)。

根据场景提供可自定义的提示

在 Dialogflow 中,您可以通过 webhook 发送简单响应,或者在 Dialogflow 控制台中定义静态响应。

Actions Builder 引入了提示队列的概念。您可以在场景的多个部分以及 webhook 中定义提示。所有提示都会添加到提示队列中,并合并到一个回复中,然后传送给用户。通过这种方法,您可以根据用户说过或做过什么,而不仅仅是根据用户匹配的意图来汇总回复。

例如,如果在场景和 webhook 中定义了提示,则系统首先将 webhook 提示添加到提示队列中,然后添加场景提示。

以下列表概述了您可以在 Actions Builder 中定义提示的位置,以及将提示添加到提示队列的顺序:

  1. 进入时
  2. 条件
  3. 槽填充
  4. 场景

内置对话设计最佳实践

设置 Dialogflow 项目后,系统会自动生成全局后备 intent,就像默认欢迎 intent 一样。当用户说出与现有 intent 不匹配的内容或没有用户输入时,系统会匹配默认后备 intent。

为了妥善处理错误,需要将后续 intent 添加到每轮对话的后备 intent。

在 Actions Builder 中,新项目中自动添加了两个单独的全局 intent:NO_MATCHNO_INPUT

当 Google 助理 NLU 与 NO_MATCHNO_INPUT 系统 intent 匹配时,系统会向用户发送相应的默认或自定义提示。NO_MATCHNO_INPUT 匹配 3 次后,系统会向用户发送最后一条消息,而 Google 助理会结束与您的 Action 的对话。

您可以为每个场景添加三个 NO_MATCHNO_INPUT 处理程序。此功能允许自定义针对特定错误处理的提示,而不是因用户不匹配或没有输入而导致的常规回退。

图 2. 为单个场景分配了三个 NO_MATCH intent 处理程序。