如何在 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
}
- Timing Events 与 Javascript
使用最新的 Watson Assistant,您可以执行以下操作 -
{
"time": 5000,
"typing":是的,
"response_type": "pause"
},
我正在使用 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
}
- Timing Events 与 Javascript
使用最新的 Watson Assistant,您可以执行以下操作 - { "time": 5000, "typing":是的, "response_type": "pause" },