2

从几天前开始,我的行为就出现了问题。应该由我的操作处理的查询被路由到 Google Assistant 主流程。这发生在 Android 手机和 Google Home 上。

复现步骤:

  • 说话:好的谷歌,和 Tinker Doodle 说话。
  • 助理:欢迎来到 Tinker Doodle,有什么可以为您服务的吗?
  • 说话:可用的命令。
  • 助理:(突然结束 Tinker Doodle 对话,列出助理上的一般命令。)

我希望 Google 助理能继续参与 Tinker Doodle 对话,并将输入反馈到我的操作中。

这使得 Tinker Doodle 几乎无法使用。你能帮忙吗?

我配置了 NO_MATCH 系统意图来调用我的 webhook,因为我使用自己的 NLP。

这在 Android Phone 和 Google Home 上运行良好,直到几天前。在 Action Builder 的模拟器中运行没有问题。

这是来自 Action Builder 的主要场景和 NO_MATCH 意图的屏幕截图。

在此处输入图像描述 在此处输入图像描述

4

2 回答 2

0

您可以使用custom-nlu 示例使用的设计,而不是使用 no_match :

有一个试图匹配user_utterance意图的“主要”场景:

在此处输入图像描述

然后 user_utterance 匹配使用any数据类型的所有内容:

在此处输入图像描述

当您转到模拟器时,任何查询都应明确匹配您的意图,然后,作为示例的一部分,它将响应您的响应:

在此处输入图像描述

于 2020-10-29T21:36:06.907 回答
0

目前尚不清楚,但这听起来可能与最近的公告有关,在某些情况下,与特定 Intent 不匹配的短语可能会导致您的操作关闭,以便助手可以处理该短语。

除此之外,使用 NO_MATCH 处理事情通常是不可取的,因为这只会在 Action 被强制关闭之前连续发生 3 次。

相反,您应该创建一个可以处理“任何”输入的 Intent,并使用此方法将该输入路由到您的处理程序。这涉及:

  1. 创建一个接受自由格式文本的新类型(我通常称之为“任何”)

创建 Any 类型

  1. 创建一个 Intent(我将其命名为“matchAny”),通过它的训练短语(或者甚至只是一个接受这种类型值的短语)接受这种类型的值

matchAny Intent

  1. 在您的场景中,将此添加为可以匹配的 Intent,然后在匹配时为您的 webhook 设置处理程序。
于 2020-10-29T21:42:23.500 回答