0

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

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

截图

用户名实体槽值

在此处输入图像描述

Channelname 实体槽值

在此处输入图像描述

样本意图

在此处输入图像描述

Intent 中使用的参数

在此处输入图像描述

使用列出的参数值的响应

在此处输入图像描述

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

在此处输入图像描述

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

4

2 回答 2

1

实体类型特意是一个固定的枚举。如果您从未将定义的“操作开发人员”创建为频道名称类型,则不会将其作为实体进行处理。

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

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

在此处输入图像描述

于 2019-05-23T16:39:06.957 回答
0

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

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

了解更多信息:

复合实体

于 2019-05-23T17:58:40.530 回答