构建对话模型

对话模型定义了用户可以向您的 Action 说出什么内容,以及您的 Action 会如何响应用户。对话模型的主要构成要素包括意图类型场景提示。调用您的某个 Action 后,Google 助理会将用户交给该 Action,此 Action 会根据您的对话模型开始与用户对话,其中包括:

  • 有效用户请求 - 为了定义用户可以对您的 Action 说出什么内容,您可以创建一组 intent 来增强 Google 助理 NLU,使其能够理解特定于您的 Action 的请求。每个意图都定义了训练短语,用于描述用户可以说什么来匹配该意图。Google 助理 NLU 会扩展这些训练短语以包含相似的短语,这些短语的聚合会生成 intent 的语言模型。

  • 操作逻辑和响应 - 场景会处理 intent、执行所需的逻辑并生成提示以返回给用户。

图 1. 对话模型由定义用户体验的意图、类型、场景和提示组成。符合调用条件的 intent 也可与您的对话匹配。

定义有效的用户请求

如需定义用户可以对您的 Action 说出什么内容,您可以组合使用 intent 和类型。借助用户 intent 和类型,您可以使用自己的语言模型增强 Google 助理 NLU。借助系统 intent 和类型,您可以充分利用内置语言模型和事件检测功能,例如用户希望退出您的 Action 或 Google 助理,却未检测到任何输入。

创建用户 intent

借助用户 intent,您可以定义自己的训练短语,从而定义用户可以对您的 Action 说出什么内容。Google 助理 NLU 使用这些短语进行自我训练,以便理解用户所说的内容。当用户说出的内容与用户 intent 的语言模型匹配时,Google 助理会匹配该 intent 并通知您的 Action,以便您执行逻辑并响应用户。

创建系统 intent

借助系统 intent,您可以通过预定义的语言模型将 intent 用于常见事件,例如用户想要退出您的 Action 或用户输入超时。如需创建系统 intent,请执行以下操作:

创建自定义类型

借助自定义类型,您可以创建自己的类型规范,以训练 NLU 理解应映射到单个键的一组值。

要创建自定义类型,请执行以下操作:

构建操作逻辑和响应

Google 助理 NLU 将用户请求与 intent 进行匹配,以便您的 Action 可以在场景中处理这些请求。场景是强大的逻辑执行器,可让您在对话期间处理事件。

创建场景

以下部分介绍了如何创建场景并为每个场景的生命周期阶段定义功能。

如需创建场景,请执行以下操作:

定义一次性设置

当某个场景首次处于活动状态时,您可以在“进入”阶段执行一次性任务。“进入”阶段仅执行一次,并且是唯一不在场景执行循环中运行的阶段。

检查状况

借助条件,您可以检查槽填充、会话存储、用户存储空间和主屏幕存储参数,以控制场景执行流程。

定义槽填充

借助槽,您可以从用户输入中提取类型化参数。

槽值映射

在许多情况下,之前的 intent 匹配可能包含部分或完全填充相应场景槽值的参数。在这些情况下,如果槽名称与 intent 参数名称匹配,则由 intent 参数填充的所有槽都会映射到场景的槽填充。

例如,如果用户通过说“我想订购大杯香草咖啡”来匹配订购饮料的意图,那么如果场景定义相同的槽,则系统会认为现有尺寸、口味和饮料类型的槽已填充。

处理输入

在此阶段,您可以让 Google 助理 NLU 将用户输入与 intent 相匹配。您可以通过向场景添加所需的 intent,将 intent 匹配的范围限定为特定场景。这样,您就可以让 Google 助理在特定场景处于活动状态时匹配特定 intent,从而控制对话流程。