Google DialogFlow - > Number-Sequence实体仅匹配SPECIFIC字符长度

时间:2018-02-20 16:33:12

标签: dialogflow google-home

我有一个类型为@sys.number-sequence的实体,它匹配4个数字长的代码,例如:(已说出)“1 2 3 4”或“1234”。

在Intent中,如果用户说的长度为1,2,3,5或6个字符而不仅仅是4个长,则此模式不匹配。所以在“用户说:”部分,我不得不添加以下所有内容: 1 12 123 1234 12345 123456 (并将每个映射到我的数字序列实体)

...处理1到6个长数序列的所有排列。

这显然是一个非常hacky和丑陋的解决方案。

有没有办法可以定义一个数字序列类型,它匹配任何长度的数字序列,以便我可以更灵活的方式在短语结构中使用它?

换句话说:我想只定义占位符匹配ONCE,而不必为每个长度变化重新定义它...

在Dialog Flow类型的文档中,我没有看到任何与“数字序列长度”有关的内容: https://dialogflow.com/docs/reference/system-entities

1 个答案:

答案 0 :(得分:1)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; namespace neoFly_Montana.Effects { public class SafeAreaPaddingEffect : RoutingEffect { public SafeAreaPaddingEffect() : base("MyCompany.SafeAreaPaddingEffect") { } } } 等内置实体只会帮助您按顺序查找数字。在api.ai中,您不能指定您想要的4位数或6位数的长度。此外,任何数字编号的所有排列的培训代理不是通用解决方案。

您可以做的是编写一个webhook,在您的代码中获取此参数@sys.number-sequence&在那里进行验证。如果它不是您想要的位数,您可以发送回复@sys.number-sequence或说Please enter 6 digit number