谷歌助手-当输入被确定为无效时,如何用@sys.any重新提示用户



我正试图通过谷歌助手创建一个自定义操作。我有由用户定义的自定义用户数据,我希望用户向我询问有关该数据的信息,通过提供其名称来确定他们想了解的数据。

例如:用户说"告诉我关于弗雷德的事"助理回答"弗雷德红了">

[
{
"name":"Fred",
"info":"Fred is red"
}
]

我遇到的问题是,当用户提供了一个不存在的名称时,如何添加训练短语或重新提示用户使用。

例如:

用户说"告诉我关于Greg的事"助理回答说:"我找不到‘格雷格’。你想知道谁?">

[
{
"name":"Fred",
"info":"Fred is red"
}
]

我尝试添加了一个只包含"name"参数的Training响应,但如果用户说"Tell me about Fred","name"的参数将设置为"Tell me about Fred",而不仅仅是"Fred"。这意味着它会忽略我设置的其他Training响应。

有谁能成为我的欧比-万·克诺比?

编辑:我在同一个项目中使用了Alexa,并向Alexa发送了一个启发插槽指令。类似的东西可以实施吗?

在这种情况下,没有真正的等价于启发槽指令(至少不是我通常看到的那样),但它确实提供了一些工具来完成你想要做的事情。

一般的方法是,在发送回复时,还可以为回复设置输出上下文。您可以将要保留的任何信息(提示的值以及可能已收集的其他状态)设置为上下文的参数。

然后,您可以将此上下文设置为输入上下文的Intents。只有当上下文处于活动状态时,Intent才会匹配。此Intent可以匹配@sys.any,或者在这种情况下可能适合的任何其他实体类型。

这种方法的一个优点是,它允许用户更具对话性地回答,或者将他们的回答从你刚刚问的提示问题上转移开。它允许用户在上下文中回答,或者通过您已经为其他目的设置的其他意图回答。

相关内容

最新更新