如何在插槽上停止循环 - Watson Conversation工具

时间:2017-11-01 00:06:17

标签: watson-conversation watson

我一直在使用Watson Conversation。最近,有了新闻功能,我开始使用插槽选项。我想知道是否可以直接在工具上停止带计数器的循环。我可以在管理处理程序上使用不同的条件来停止循环,但不能使用计数器。 任何人都知道如何在工具上做到这一点?

1 个答案:

答案 0 :(得分:1)

所以你在正确的地方。您使用处理程序。

1。创建一个名为counter的上下文变量,并将其设置为1的值。 1的原因是将其设置为0可以使其不可见。在欢迎部分中执行此操作。

2。创建你的插槽。例如,我将条件设置为input.text == "go"

3。正常设置您的插槽。再举一个例子,我寻找$person$date(@ sys-person和@ sys-date)

4。在#34的第一个响应的处理程序中;如果找不到任何提示的答案,则:"将JSON设置为:

{
  "conditions": "$counter > 3",
  "output": {
    "text": {
      "values": [
        "You have gotten the question wrong too many times."
      ],
      "selection_policy": "sequential"
    }
  },
  "context": {
    "date": "cancel",
    "person": "cancel",
    "counter": 99
  }
}

如果处理程序被击中3次,这将激活。它会将counter设置为99(请参阅后面的内容),将有用的上下文变量设置为"cancel",以便退出插槽。

5。处理程序中的第二个响应,将其设置为此JSON。

{
  "output": {},
  "context": {
    "counter": "<? $counter = $counter + 1 ?>"
  }
}

这是counter的增量。

6。回到插槽的主要部分。在&#34;然后回复:&#34;,将条件设置为:

$date != "cancel" or $person != "cancel"

并设置响应以显示您的值。在这一点上它应该工作。但是,如果您再次尝试进入插槽,则会失败。所以让我们为它构建一个处理程序。

7。在您的插槽下创建一个子节点。将您的插槽设置为&#34;最后跳转到&#34;条件块。

8。在子节点中,将条件设置为:$counter == 99。对于您的JSON响应,请输入以下内容:

{
  "context": {
    "counter": 1,
    "date": null,
    "person": null
  },
  "output": {}
}

这会重置计数器,并删除插槽变量。这允许您重新进入插槽。

以下是一个示例对话工作区:https://pastebin.com/caA2gb5u

从此开始(不在示例中)。您可以使用每个上下文变量的各个槽处理程序以相同的方式重置计数器。