Dialogflow-Google助理:@ sys.any实体未捕获数字序列

时间:2018-12-21 12:01:09

标签: dialogflow actions-on-google

我创建了一个Intent,它输出带有给定参数名称的上下文,例如$myParam。此Intent的目标是捕获较长的数字序列。我知道有一个@sys.number-sequence实体,但是我使用的是意大利语语言,因此这种实体不可用。只有@sys.number,但是我期望用户输入的数字超出其范围。

在这些限制下,我选择@sys.any作为参数$myParam的实体。

问题

当用户在真实设备中输入数字时,助手可能会在它们之间添加一些空格(当用户说出它们时)。

当助手获取序列111 222时,便触发了Intent,一切正常。

但是,当助手获取序列111222(请注意缺少空格)时,它将不起作用。

我原以为@sys.any实体会捕获所有输入,但看起来并非如此。

您知道如何处理此案吗?

我的目标是即使助手捕获到数字序列,也要在序列之间,之前或之后没有空格时触发意图。

图片:

https://ibb.co/ngBzGtx

2 个答案:

答案 0 :(得分:1)

最近几天我遇到了这个问题,这确实很烦人。突然,由于某种我不知道的原因,Assistant的@sys.any实体不再为捕获数字而工作。

我的用例几乎与您的用例相同,我有一个父Intent,请用户输入代码(10到15位数字),并创建了一个后续Intent以处理用户的输入。我使用的是与英语不同的语言,并且系统提供的用于捕获长号的实体是@sys.any

但是它停止工作了!我到处寻找一种方法,以某种方式迫使助手输入特定的意图,因为不仅现在不触发跟进意图,而且也不触发后备意图。助手仅保留父项意图,然后崩溃。

我花了几个小时没有发现有用的东西之后,我尝试了这个对我有用的技巧。 创建意图时,默认情况下,其优先级为 Normal 。我希望使用持有用户输入的实体类型@sys.any的参数来触发后续意图的优先级为 High ,从而解决了我的问题。现在它可以像以前一样正常工作。

MVC implemented in pure C

答案 1 :(得分:0)

通常不应使用@sys.any实体来覆盖短语中的所有内容。对于这种情况,您应该能够使用后备意图,然后处理用户的全部输入。