我有一个类型为@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
答案 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
。