Google动作builder/Google助手如何使用专有名词作为类型

Google action builder/Google assitant How to use proper noun as type

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

例如,用户可以说“将此信息发送给 john smith”,该信息存储在我的后端,所以我很容易找到并且我得到了正在与 google 交谈的人的 ID小助手所以这个也没问题

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

如果有人知道如何使用 google 带有专有名词的动作生成器,我将不胜感激知道我如何设法做到这一点。

您通常有两种选择。

自由格式文本方法

首先,您可以创建一个“自由格式文本”类型,它几乎可以捕获所说的任何内容。

然后可以使用一些示例来训练自定义意图以提取正确的专有名词(或其他任何内容)。您的 webhook 将能够在那时匹配。

类型覆盖方法

或者,您可以创建一个新类型,该类型以您在自定义意图中使用的样本名称预设开头。然后,当动作开始时,您可以在 webhook 中获取用户的个人联系人列表并设置 session type overrides.

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

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

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