我创建了几个水果一个实体(苹果,香蕉,橙子,鳄梨)沃森谈话实体阵列
当我的用户说,我需要检查,如果有一个@Fruits做工精细的任何意图,但如果我的用户说我需要将2个或更多的水果保存在一个阵列中。我怎样才能使用插槽?因为在我的测试中,他仅保存最后一个(如果我打印$ myFruits)
TKS
我创建了几个水果一个实体(苹果,香蕉,橙子,鳄梨)沃森谈话实体阵列
当我的用户说,我需要检查,如果有一个@Fruits做工精细的任何意图,但如果我的用户说我需要将2个或更多的水果保存在一个阵列中。我怎样才能使用插槽?因为在我的测试中,他仅保存最后一个(如果我打印$ myFruits)
TKS
当用户键入两个值以上,这个值是一个实体内,该值将里面保存array
,你可以访问实体。例如...
你可以在我的例子看,如果我种两味的,将两个值出现在我的控制台在一个阵列...
对话框:
控制台:
所以,如果你想从实体@fruits
的所有值。您可以使用此方法为一个上下文变量中保存(如:$fruits
):
<? entities['fruits'][0].value + entities['fruits'][1].value ?> //if types two fruits
而对于这对您的对话框中显示,你可以用这个方法:
{
"output": {
"text": "This is the array: <? $fruits.join(', ') ?>"
}
}
回报率将是:
This is the array: calabresa, marguerita,
如果你想访问从代码的实体的所有值,你需要访问从调用消息(接入实体,意图,上下文变量等)的回报,使用下面的代码:
var arrayEntitie = response.entities
for (var i=0; i < arrayEntitie.length; i++) {
if (arrayEntitie[i].name === 'calabreza') { //make your condition
//do something
}
}
简单的方法是使用@ EntityName.values。它将以数组的形式将给定实体的所有值存储在上下文中。