在watson会话中设置多个输出文本值

我在对话中有下面的节点。 我想提出的行动,并根据需要调用的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中的这个会话节点时,它总是会给出第一个值,即'我想要成功获取这个场景',它永远不会给出像'我想得到这个错误场景'这样的输出。

如何解决这个问题?

这是非常复杂的答案,因为取决于您的Chatbot中的业务angular色。

但是,如果你想根据条件回答一条消息…

您可以在您的输出中看到selection_policysequential ,换句话说,首先会显示第一个短语,并且只要用户再次访问该条件,就会显示第二个消息。

“返回数组中值的顺序取决于属性selection_policy 。”

解决这个问题的更好的forms是在Nodestream内为每个短语创build两个条件。

例如第一个条件stream程:

 if bot recognizes successScenario response "I want to get this with success scenario" 

在另一个第二条件stream程中:

 if bot recognizes errorScenario response "I want to get this with error scenario" 

而你的Nodejs应用程序将根据条件得到值。

在这里查看官方文档,search关于selection_policy

我用下面的方式解决了这个问题。

 { "output": { "text": { "values": [ { "successMsg": "success Message", "errorMsg": "error message" } ] }, "action": "MyAction" } } 

不去新节点的原因,因为有了这个动作,我需要创buildAPI并且基于API调用成功,并且向用户显示这条消息失败。 那么这将有助于节省一次往返,因为不需要再将结果状态发送给对话服务,它将基于该节点自身来识别向用户呈现的内容。