不检测实体中提供的参数以外的参数

Not Detecting Parameters Other Than Provided In The Entity

我正在尝试为 Rocket Chat 创建一个 Google 操作,用户名和频道名称是完成意图的重要参数。但是,当我尝试说出列出的实体值以外的值时,Assistant 无法识别它。

我正在使用 Dialogflow V2 进行开发,我已经添加了大约 30-40 个实体值和训练短语,但只有实体槽值列表中列出的才会被识别,而尝试其他的只会在回复。我附上了一些我的意图和实体的照片,以及对下面列出的和未列出的值的回复。

截图

用户名实体槽值

频道名实体槽值

示例意图

Intent 中使用的参数

对使用列出的参数值的响应

对使用未列出的参数值的响应

我尝试在参数中使用必需的设置,如果未传递值,则设置提示,但它只是重新提示 3-4 次,然后助手崩溃。

一个实体类型有意是一个固定的枚举。如果您从未创建定义 'actions developers' 作为频道名称类型,则不会将其作为实体处理。

如果您想处理任何频道名称,您应该将您的实体替换为@sys.any 类型。这将允许您捕获任何值并对其进行处理。

使用此功能时,请准备好进行大量测试并创建大量训练短语,以确保您只捕获要捕获的文本,而周围没有任何内容。

您可以考虑使用复合实体。您可以创建包含 channelname 实体和 sys.any 实体的新实体。例如,您可以创建一个名为 "CreateChannel" 的实体并将这些实体 create @sys.any:anyChannelNamecreate @Channelname:Channelname 作为值插入。(不要忘记禁用 "Define synonyms" 按钮)然后您可以使用这个实体作为训练短语。

现在,您可以获得任何值作为参数,无论它是否是 "channelname" 实体,并且可以确定用户想要创建频道。

更多信息:

Composite entities