问题描述
我正在尝试连接不同的实体类型或实体属性。考虑这种情况:
我有动物清单,还有蔬菜清单
每个动物都吃蔬菜的子集-牛吃蔬菜A,蔬菜B,母鸡吃蔬菜B,蔬菜
一旦Cow处于上下文中,我要捕获的唯一蔬菜实体是veggieA和veggieB。即使提到了veggieC,我也不想因为我的所有跟进意图而抓住这个实体
我该如何实现?
我可以在动物实体类型中添加诸如牛,母鸡等动物的清单吗,在蔬菜实体类型中包含诸如veggieA,veggieB等蔬菜的清单吗
或像每种动物形成不同的实体类型一样-母牛是实体,母鸡是实体
我如何像前面所述连接不同的实体?
解决方法
要考虑的关键点是,实体中的任何值(无论是否定制)都将与以该实体作为参数的特定意图有效匹配。
意思是,如果您有一个void checkArry(char str[],int len){
if(len >= 0){
checkArry(str,len - 1);
if(str[len] == 'P')
printf("P");
}
}
实体和一个animal
实体,即使您只以牛为动物训练 Cow-intent 意图,该意图也将是无论您提交哪种动物,都可以匹配。据我所知,您不能在意图内限制有效的实体值。
因此,确保满足您的行为的最简单方法是为每只动物(具有相同蔬菜的一组动物)创建单独的实体。然后为每个动物实体创建特定的意图,后续意图也将分配一个特定的蔬菜实体。意思是,许多特定实体而不是一般实体。您将拥有以下实体:像牛,像鸡,像牛,像蔬菜,...
如果这对于您的特定用例而言似乎不可行,您还可以尝试保留通用实体并在Webhook实现中编写一些条件代码来处理您的特定行为,类似于here中的操作。