Watson Assistant - 拼写 |更新数组
Watson Assistant - Spel | Updating array
我正在尝试使用 Watson Assistant JSON 编辑器
现在这是设置
Entities
@action = eat,run,play
Context Variable
$list = [0,0]
I want to update my list if an action is detected
List[0] will be the size
List[1] will be the position[0]
在 Spel 上尝试 JSON
"$list":"<? entities['action'] != null ? $list.set(0,entities['action'].size()) and $list.set(1,entities['action'].location[0]): $list.set(0,0) and $list.set(1,0) ?>"
如果添加了 "and" 运算符 returns "True" | $list=True
而不是我的数组更新为 $list['size']['location']
我只能通过添加另一个包含布尔部分的上下文变量来实现此目的
"sample": "entities['action'] != null ? $list.set(0,5) and $list.set(1,5) : $list.set(0,0) and $list.set(1,0)"
知道如何使用 1 个变量获得相同的输出吗?
将列表设置为 "True" 的原因是这个表达式:"$list":"<? entities['action'] != null ? $list.set(0,entities['action'].size()) and $list.set(1,entities['action'].location[0]): $list.set(0,0) and $list.set(1,0) ?>"
最后会将布尔检查的结果值分配给列表变量,从而覆盖表达式所做的修改。这是用于更新上下文变量的默认 WA 行为(例如,当您写入 "my_string" : "value of the string"
如果您只想修改列表数组,您应该使用您建议的第二种方法和另一个变量 sample
- 它将使用 SpEL 表达式的结果值进行更新,因此 list
不会被覆盖。
我正在尝试使用 Watson Assistant JSON 编辑器
现在这是设置
Entities
@action = eat,run,play
Context Variable
$list = [0,0]
I want to update my list if an action is detected
List[0] will be the size
List[1] will be the position[0]
在 Spel 上尝试 JSON
"$list":"<? entities['action'] != null ? $list.set(0,entities['action'].size()) and $list.set(1,entities['action'].location[0]): $list.set(0,0) and $list.set(1,0) ?>"
如果添加了 "and" 运算符 returns "True" | $list=True
而不是我的数组更新为 $list['size']['location']
我只能通过添加另一个包含布尔部分的上下文变量来实现此目的
"sample": "entities['action'] != null ? $list.set(0,5) and $list.set(1,5) : $list.set(0,0) and $list.set(1,0)"
知道如何使用 1 个变量获得相同的输出吗?
将列表设置为 "True" 的原因是这个表达式:"$list":"<? entities['action'] != null ? $list.set(0,entities['action'].size()) and $list.set(1,entities['action'].location[0]): $list.set(0,0) and $list.set(1,0) ?>"
最后会将布尔检查的结果值分配给列表变量,从而覆盖表达式所做的修改。这是用于更新上下文变量的默认 WA 行为(例如,当您写入 "my_string" : "value of the string"
如果您只想修改列表数组,您应该使用您建议的第二种方法和另一个变量 sample
- 它将使用 SpEL 表达式的结果值进行更新,因此 list
不会被覆盖。