使用Watson Assistant在条件下评估上下文变量

时间:2019-01-15 20:08:54

标签: json ibm-watson watson-conversation

每次Watson都无法回答问题或评论时,它会弹出一个“ everything_else”节点,上面写着“对不起,我不知道bla bla bla”。我希望Watson在三点后向用户发送特定消息尝试失败。我该怎么办?

我已阅读此页面(https://console.bluemix.net/docs/services/assistant/dialog-slots.html),但无法应用给出的解决方案。

我的“ anything_else”杰森

{
  "output": {
    "generic": [
      {
        "time": 2000,
        "typing": true,
        "response_type": "pause"
      },
      {
        "values": [
          {
            "text": "Ainda não tenho todas as respostas, talvez reformular a frase ajude..."
          },
          {
            "text": "Perdão, acho que não entendi. Tente inserir palavras chave ou reformular a frase."
          },
          {
            "text": "Sorry! Essa eu não sei... Tente algumas palavras chave,     pode me ajudar a entender!"
          }
        ],
        "response_type": "text",
        "selection_policy": "random"
      }
    ]
  }
}

1 个答案:

答案 0 :(得分:2)

有两种方法。

方法1:

将您的响应从随机更改为顺序。如果不希望您的用户经常点击该主题或成为“轮胎踢手”(使用系统,但未按预期使用),则此方法很好。

例如,在一个非主题中,您可能会对它给出2个响应,但是第三个告诉他们停止播放。

方法2:

具有两个anything_else节点。第一节点检查计数器是否超过某个值。逻辑将类似于:

  

如果 $counter < 3

在节点中,您将使用普通的“我不理解”,并增加计数器。

重要,请确保您已创建一个默认的$counter变量并进行了设置(在您的Welcome节点中不错)。

第二个anything_else节点将给出您想要的预期响应。您可以选择在此时重置计数器。

添加的选项将是带有一个标志,用于检查您是否击中了第一个anything_else。如果没有,请重置计数器。

例如,如果某人连续问了太多题外的问题,您可能想阻止它们,但是如果他们继续做题,则需要重置以防止误解被当作题外。