0

我想要一个代表专有名词的类型,例如姓氏,但我在这方面找不到任何东西。我的目标是使用谷歌助手和我的后端向其他人发送信息。

例如,用户可以说“将此信息发送给 john smith”,该信息存储在我的后端中,因此我可以毫无问题地查找,并且我得到了与 Google 助理交谈的人员的 ID,所以这也没有问题。

问题是我怎样才能得到 john smith 作为我发送到我的 webhook 的参数?所以我的后端可以验证我的数据库中的用户列表并在用户存在时发送信息。我尝试使用 Type 但一个家庭不匹配任何模式,因为它可以是任何东西......

如果有人知道如何使用带有专有名词的 google action builder,我将不胜感激知道我是如何做到的。

4

1 回答 1

1

您通常有两种选择。

自由格式文本方法

在此处输入图像描述 首先,您可以创建一个“自由格式文本”类型,它可以捕捉到几乎所有所说的内容。

在此处输入图像描述 然后可以通过一些示例训练自定义意图,以提取正确的专有名词(或其他任何东西)。您的 webhook 届时将能够匹配。

类型覆盖方法

在此处输入图像描述 或者,您可以创建一个以您在自定义意图中使用的示例名称的预设开头的新类型。然后,当操作开始时,您可以在 webhook 中获取用户的个人联系人列表并设置会话类型覆盖

这是我从音乐播放器操作中获得的代码示例:

conv.session.typeOverrides = [{
    name: 'genre',
    mode: Mode.TypeReplace,
    synonym: {
      entries: Array.from(trackGenres).map(genre => ({
        name: genre,
        synonyms: [genre]
      }))
    }
  }]

根据您的系统架构,其中一个可能比另一个更有意义。第一个更好地捕获所有内容,但可能需要在您的 webhook 上进行更多的后期处理。后者在精确度上更好,但可能意味着如果名称不完全匹配,则可能不匹配。

于 2021-10-01T16:28:40.217 回答