在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_policy
是sequential
,换句话说,首先会显示第一个短语,并且只要用户再次访问该条件,就会显示第二个消息。
“返回数组中值的顺序取决于属性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调用成功,并且向用户显示这条消息失败。 那么这将有助于节省一次往返,因为不需要再将结果状态发送给对话服务,它将基于该节点自身来识别向用户呈现的内容。