【问题标题】:Multiple output text value setting in watson conversation沃森对话中的多个输出文本值设置
【发布时间】:2017-08-17 13:27:35
【问题描述】:

我在对话中有以下节点。我想提出行动并根据需要调用 API。在成功场景中,将显示从 output.text[1] 获取的 output.text[0] 和错误场景

{
   "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 中访问这个对话节点时,它总是会给出第一个值,即“我想在成功的情况下得到这个”它永远不会给出像“我想在错误的情况下得到这个”这样的输出.

如何解决这个问题?

【问题讨论】:

    标签: node.js ibm-watson watson watson-conversation


    【解决方案1】:

    这真的很难回答,因为取决于您在聊天机器人中的业务角色。

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

    您可以在输出中看到selection_policysequential,换句话说,first 将显示第一个短语,并且如果用户再次访问该条件,将显示第二个消息。

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

    解决这个问题的更好形式是在节点流中为每个短语创建两个条件。

    例如第一个条件流:

    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

    【讨论】:

    • 感谢您的回答和网址(这是2天前添加的)。该链接提供了适当的解决方案。我赞成你的回答。
    【解决方案2】:

    我已通过以下方式解决了该问题。

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

    不使用新节点的原因,因为通过此操作,我需要创建 API 并根据 API 调用成功和失败向用户显示此消息。然后它将有助于节省一次往返,因为不需要再次将结果状态发送到会话服务,它将根据该节点本身识别要呈现给用户的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      相关资源
      最近更新 更多