在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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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