Javascript 沃森谈话的评价方法?
我还有一个问题要问沃森对话专家;)我有一个新问题。我需要将字符串求值为变量名:我创建4个静态值:Javascript 沃森谈话的评价方法?,javascript,spring-el,watson-conversation,Javascript,Spring El,Watson Conversation,我还有一个问题要问沃森对话专家;)我有一个新问题。我需要将字符串求值为变量名:我创建4个静态值: { "Pmarguerita": 9, "Pregina": 10, "Pcarne": 10, "PEVEA": 12 } 当我解析用户的输入时,我会这样连接: { "PiPrice": "<? 'P'+entities['name_pizza'][0].value ?>" "total" :"<?entities['sys-number'][0].va
{ "Pmarguerita": 9,
"Pregina": 10,
"Pcarne": 10,
"PEVEA": 12
}
当我解析用户的输入时,我会这样连接:
{
"PiPrice": "<? 'P'+entities['name_pizza'][0].value ?>"
"total" :"<?entities['sys-number'][0].value.toInt() * eval(PiPrice) ?>"
}
我可以用多个节点做一个if-elif类似的块,但是如果用户的输入开始变得重要,那么它所需要的节点数量将是指数级的巨大。
在app builder管道中的app.js src代码中是否有使用此功能的方法 我测试了一些类似的东西,并提出了以下解决方法:
- 我将节点一分为二,每个节点使用一个求值(
) - 第一个节点的输出为空,但将上下文变量设置为计算值。该节点被配置为跳转到另一个节点(第二个节点)
- 第二个节点具有最终评估并生成输出(响应)
“run_eval”
,并使其值与要使用上下文变量名称执行的eval语句匹配。使用设置的上下文变量作为返回值
例如:
"context": {
"Pmarguerita": 9,
"Pregina": 10,
"Pcarne": 10,
"PEVEA": 12,
"PiPrice": "<? 'P'+entities['name_pizza'][0].value ?>",
"Items": "<?entities['sys-number'][0].value.toInt() ?>"
"run_eval" : "$PiPrice * $Items",
"run_eval_return_field": "total"
}
然后eval()并返回如下对话:
"context": {
"Pmarguerita": 9,
"Pregina": 10,
"Pcarne": 10,
"PEVEA": 12,
"PiPrice": "10",
"Items": "5"
"total": "50"
}
不用说,你需要处理运行eval的危险
10 * 5
"context": {
"Pmarguerita": 9,
"Pregina": 10,
"Pcarne": 10,
"PEVEA": 12,
"PiPrice": "10",
"Items": "5"
"total": "50"
}