Node.js watson对话中的多输出文本值设置
对话中有以下节点。我想提出行动,并根据这一需要调用API。在成功场景中,将显示output.text[0]和从output.text[1]获取的错误场景Node.js watson对话中的多输出文本值设置,node.js,ibm-watson,watson,watson-conversation,Node.js,Ibm Watson,Watson,Watson Conversation,对话中有以下节点。我想提出行动,并根据这一需要调用API。在成功场景中,将显示output.text[0]和从output.text[1]获取的错误场景 { "output": { "text": { "values": [ "I want to get this with success scenario", "I want to get this with error scenario" ], "s
{
"output": {
"text": {
"values": [
"I want to get this with success scenario",
"I want to get this with error scenario"
],
"selection_policy": "sequential"
},
"action": "MyAction"
}
}
但是,当我在node.js中访问此对话节点时,它将始终给出第一个值,即“我希望通过成功场景获得此结果”,它不会给出类似“我希望通过错误场景获得此结果”的输出
如何解决这个问题 回答这个问题非常复杂,因为这取决于您在聊天机器人中的业务角色 但是,如果你想根据条件回答一条信息 您可以在输出中看到
选择\u策略
是顺序的
,换句话说,first将显示第一个短语,并且只要用户再次访问条件,就会显示第二条消息
“数组中值的返回顺序取决于属性选择\u策略
”
解决此问题的更好形式是为每个短语在节点流中创建两个条件。
例如,第一个条件流:
if bot recognizes successScenario response "I want to get this with success scenario"
if bot recognizes errorScenario response "I want to get this with error scenario"
在另一第二种情况下,流量:
if bot recognizes successScenario response "I want to get this with success scenario"
if bot recognizes errorScenario response "I want to get this with error scenario"
你的应用程序和Nodejs将根据条件获得值
请参阅有关此问题的官方文档,搜索关于
selection\u policy
我已通过以下方式解决了此问题
{
"output": {
"text": {
"values": [
{
"successMsg": "success Message",
"errorMsg": "error message"
}
]
},
"action": "MyAction"
}
}
不使用新节点的原因,因为通过此操作,我需要创建API,并根据API调用成功和失败向用户显示此消息。然后,它将有助于节省一次往返,因为不需要再次将结果状态发送给对话服务,它将根据该节点本身识别要向用户呈现的内容 感谢您的回答和URL(它是2天前添加的)。这将给出适当的解决方案。我对你的答案投了赞成票。