我正在使用IBM Watson Assistant创建聊天机器人。我正在使用带有意图,实体和对话框流的Web界面(我不知道它是如何被调用的,我只是称它为web界面)。
我想在对话框中有一个节点等待说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助手,您可以执行以下操作 - {“time”:5000,“typing”:true,“response_type”:“pause”},