我正在使用IBM助手创建一个聊天机器人。我使用的是带有意图、实体和对话框流的树的web接口(我不知道它是如何被调用的,我只是称它为web接口)。
我希望在对话框中有一个节点,它等待,比如说,100,然后发送另一条消息给用户,但前提是用户没有在中间发送另一条消息。我可以在节点中添加暂停,但最多只能暂停10 s。当然,我可以在一个节点中按顺序添加多个这样的暂停,但这不是很好的样式。我如何解决这个问题,而不是等待1000,然后才发送消息,如果用户在这100年代没有发送消息?
此外,我的聊天机器人(对话框树中的一个大分支)中有一个非常线性的流。如果与聊天机器人的对话超过10分钟,我想停止它,跳出分支。我可以通过存储会话开始时的当前时间来解决这个问题,如果时差大于10分钟,然后检查每个节点,然后跳出。但这还是不太好的风格。我怎样才能解决这个更优雅的问题?
发布于 2019-01-02 21:22:00
不幸的是,Watson助手没有提供此功能。但是我们有很多方法可以做到这一点,因为Watson是一个API,我们有所有的后端来创建自定义代码,例如。
您可以使用最后一个请求/message并创建一个setInterval,如果向/message传递的条件比上次请求多一些,可以按您的意愿添加一些条件,并发送一些您想要的消息。
if(inputTiming > 100000) {
response.output.text = 'Hey, are you there?';
return response
}发布于 2019-04-11 09:16:26
使用最新的沃森助手,您可以这样做-{“时间”:5000,“键入”:true,"response_type":“暂停”},
https://stackoverflow.com/questions/54012958
复制相似问题