Node.js watson对话中的多输出文本值设置

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

对话中有以下节点。我想提出行动,并根据这一需要调用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"
       ],
       "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天前添加的)。这将给出适当的解决方案。我对你的答案投了赞成票。