如何在 Watson Assistant 中进行长时间停顿?

How to make a long pause in Watson Assistant?

我正在使用 IBM Watson Assistant 创建聊天机器人。我正在使用带有意图、实体和对话流|树的网络界面(我不知道它是怎么叫的,我只是称它为网络界面)。

我希望对话框中有一个节点等待 100 秒,然后向用户发送另一条消息,但前提是用户在此期间没有发送另一条消息。我可以在节点中添加暂停,但最多只能暂停 10 秒。当然我可以在一个节点中按顺序添加多个这样的暂停,但这不是很好的风格。如果用户在这 100 秒内没有发送消息,我该如何解决这个问题而不是等待 100 秒然后才发送消息?

此外,我的聊天机器人(对话树中的一个大分支)中有一个非常线性的流程。如果与聊天机器人的对话超过 10 分钟,我想停止它并跳出分支。我可以通过存储对话开始时的当前时间来解决这个问题,然后在每个节点中检查时差是否大于 10 分钟,如果是,则跳出。但这又不是好的风格。我怎样才能更优雅地解决这个问题?

很遗憾,Watson Assistant 不提供此功能。但是我们有很多方法可以做到这一点,因为 Watson 就是其中之一 API,而且我们拥有创建自定义代码的所有后端。

您可以使用最后一个请求 /message 并创建一个 setInterval,如果自上次请求 /message 以来传递的次数多于您想要的,则添加一些条件并发送一些你想要的消息。

if(inputTiming > 100000) { 
  response.output.text = 'Hey, are you there?';
  return response
}

使用最新的 Watson Assistant,您可以执行以下操作 - { "time": 5000, "typing":是的, "response_type": "pause" },