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

我正在为公司学习Watson AI / Assistant,因为我们打算向客户推介它(我们是一家网页开发公司)。我已经进入了Assistant,并通过设计一个文本冒险游戏来自学。在这个游戏中,Watson会引导你在一个世界中,你可以捡起东西并放下它们之类的事情。所以我试图让Watson创建一个名为“inventory”的JSON数组。

然而,虽然我成功在上下文变量选项下创建了数组,但我无法轻松地添加或删除其中的元素,因为看起来我的Assistant无法执行任何代码。

我的问题很简单:在识别到一个意图时,我可以执行JavaScript代码吗?例如,如果用户输入“捡起沙子”,其中意图是“捡起”,并且识别出沙子这个实体,那么可以执行JavaScript将实体结果(沙子)解析到“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中移除指定索引位置的元素

完整方法列表

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注