javascript - 在 Watson Assistant 中添加和编辑 JSON 数组
问题描述
我正在为我的公司学习 Watson AI / Assistant,因为我们打算向客户推销它(我们是一家网络开发公司)。我进入了助手,并通过设计一个文字冒险游戏来自学。在这个游戏中,Watson 将带领你穿越一个世界,在这个世界中,你可以捡起东西,然后放下它们,诸如此类。所以我试图让 watson 创建一个称为库存的 JSON 数组。
但是,虽然我设法在上下文变量选项下创建了数组,但我无法轻松地添加或减去它,因为我的助手似乎没有办法执行任何代码。
我的问题很简单:我可以在识别意图后执行 javascript 代码吗?例如,如果用户键入“pick up sand”,意图是“pick up”,而 sand 是被识别的实体,那么执行 javascript 将实体结果(sand)解析到数组“inventory”中?
这可能吗?
我尝试将上下文变量创建为数组(有效)。但是,如果不打印整个内容,我就无法更新它,这使得它无法用作数组和库存。这是我在第一步添加上下文变量创建的 JSON 数组。
{
"output": {
"generic": [
{
"values": [
{
"text": "Welcome to Kojoto."
}
],
"response_type": "text",
"selection_policy": "sequential"
},
{
"time": 5000,
"typing": false,
"response_type": "pause"
}
]
},
"context": {
"Inventory": [
{
"name": "belt",
"description": "A leather belt."
},
{
"name": "pouch",
"description": "A leather pouch."
}
]
}
}
我希望能够以公认的意图添加到库存而不删除整个阵列。这样,它比将 $has-sand 从“yes”变为 null 更加高效和实用。
解决方案
据我了解,您想在数组中添加和删除对象。
看看以下方法,如果任何意图匹配,它们可以帮助您在数组中添加一个对象,您也可以以同样的方式删除它。
{
"context": {
"toppings_array": "<? $toppings_array.append('ketchup', 'tomatoes') ?>"
}
}
将新值附加到 JSONArray
{
"context": {
"toppings_array": "<? $toppings_array.remove(0) ?>"
}
}
从 JSONArray 中移除索引位置的元素
推荐阅读
- c# - What does a single quote inside a C# date time format mean?
- c# - How to assign a variable with .ConvertToString() method in C# to parse the message?
- javascript - Vue 中的窗口事件监听器
- python - python请求并获取cookie
- mysql - 为什么这个 MySQL 数据库在同一台服务器的不同挂载驱动器上有 6 个备份副本
- javascript - 使用 Javascript 从远程服务器位置获取数组
- mysql - 回滚事务无法正常工作
- powershell - .PS1 仅部分从 .BAT 运行
- java - 如何区分两个自定义树?
- c++ - 是否允许对嵌套类的参数使用完全限定的类名?