我在对话中有以下节点。我想提出动作,并根据调用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中访问这个会话节点时,它总是会给出第一个值,即'我想通过成功场景来获得这个值#39;它永远不会给出类似的输出,我希望得到错误情景' 。
如何解决此问题?
答案 0 :(得分:2)
回答这个问题非常复杂,因为您的商务角色取决于您的Chatbot。
但是,如果你想根据条件回复一条消息......
您可以在输出中看到selection_policy
为sequential
,换句话说,首先会显示第一个短语,并且只要用户再次访问该条件,就会显示第二条消息
“返回数组中值的顺序取决于属性selection_policy
。”
解决此问题的更好方法是在每个短语的Node流程中创建两个条件。
例如第一个条件流程:
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的应用程序将根据条件获得值。
请参阅有关此here的官方文档,搜索selection_policy
。
答案 1 :(得分:1)
我已通过以下方式解决了该问题。
{
"output": {
"text": {
"values": [
{
"successMsg": "success Message",
"errorMsg": "error message"
}
]
},
"action": "MyAction"
}
}
不使用新节点的原因,因为通过此操作,我需要创建API并基于API调用成功并失败向用户显示此消息。然后,它将有助于保存一次往返,因为无需再次向会话服务发送结果状态,它将根据此节点本身识别要向用户显示的内容。