在 Watson Assistant 中添加和编辑 JSON 数组

Adding and editing a JSON array in Watson Assistant

我正在为我的公司学习 Watson AI / Assistant,因为我们打算向客户推销它(我们是一家网络开发公司)。我进入了助手,并通过设计一个文字冒险游戏自学了它。在这个游戏中,Watson 将带领您穿越一个世界,在这个世界中您可以捡起东西并放下它们等等。所以我试图让沃森创建一个名为库存的 JSON 数组。

然而,虽然我设法在上下文变量选项下创建了数组,但我无法轻松地对其进行添加或减去,因为我的助手似乎没有办法执行任何代码。

我的问题很简单:我可以在识别意图时执行 javascript 代码吗?比如用户输入"pick up sand",intent是"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.

更加高效和可用。

据我了解,您想向数组中添加和删除一个对象。

看看下面的方法,如果任何意图匹配,它们可以帮助您在数组中添加一个对象,您也可以用同样的方式删除它。

JSONArray.append(object) :

{
  "context": {
    "toppings_array": "<? $toppings_array.append('ketchup', 'tomatoes') ?>"
  }
}

向 JSONArray 附加一个新值

JSONArray.remove(Integer) :

{
  "context": {
    "toppings_array": "<? $toppings_array.remove(0) ?>"
  }
}

从JSONArray中移除index位置的元素

List of complete methods