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

时间:2017-08-17 13:27:36

标签: 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"
       ],
       "selection_policy": "sequential"
     },
     "action": "MyAction"
   }
 }

但是当我在node.js中访问这个会话节点时,它总是会给出第一个值,即'我想通过成功场景来获得这个值#39;它永远不会给出类似的输出,我希望得到错误情景' 。

如何解决此问题?

2 个答案:

答案 0 :(得分:2)

回答这个问题非常复杂,因为您的商务角色取决于您的Chatbot。

但是,如果你想根据条件回复一条消息......

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

“返回数组中值的顺序取决于属性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调用成功并失败向用户显示此消息。然后,它将有助于保存一次往返,因为无需再次向会话服务发送结果状态,它将根据此节点本身识别要向用户显示的内容。