如何在Watson Assistant中更改上下文值

时间:2019-12-20 22:32:51

标签: arrays json ibm-watson assistant

我在更改值时遇到问题,我在会话开始时就有此上下文

    "context": {
        "Trips" : {
            "Germany": {
                "Info": null,
                "Dates": null,
                "Prices": null,
                "Flights": null,
                "Layaway": null,
                "Requirements": null
            }
        }
    }

当用户请求信息时,如何将Information的值更改为True

我尝试使用这样的数组

    "context": {
        "Trips" : {
            "Germany": [
                {
                    "Info": null
                },
                {
                    "Dates": null
                },
                {
                    "Prices": null
                },
                {
                    "Flights": null
                },
                {
                    "Layaway": null
                },
                {
                    "Requirements": null
                }
            ]
        }
    }

然后我使用“ 然后设置上下文”来更改值

"context": {
    "remove": "\"<? $Trips.Germany.removeValue({\"Info\"==null\") ?>\"",
    "experiences": "<? $Trips.Germany.append({Info : True}) ?>"
}

但是我认为这不是最好的方法。我想在不使用数组的情况下执行此操作。我还有一个问题。

当我使用“ 如果助手识别”时如何访问值?

我有

$Trips.Germany.indexOf("Info")==true

但是我得到了错误:

评估对话框节点ID [response_1_1576705519309]时,出现

SpelEvaluationException。条件[$ Trips.Germany.indexOf(“ Info”)== true]的语法有效,但无法求值。检查表达式中的对象是否不为null或超出范围。 SpEL评估错误:EL1008E:在“ JsonArray”类型的对象上找不到属性或字段“ Germany”-也许不是公共的? (日志中还有1个错误)

有没有一种方法可以识别一个值而不依赖其他值?

0 个答案:

没有答案