如何在Watson Assistant中长时间停留?

时间:2019-01-02 20:46:40

标签: ibm-watson watson-conversation

我正在使用IBM Watson Assistant创建聊天机器人。我正在使用具有意图,实体和对话框流程的Web界面|树(我不知道它的名称,我只是称它为Web界面)。

我希望对话框中有一个节点,等待100秒,然后向用户发送另一条消息,但前提是用户之间没有发送另一条消息。我可以在节点中添加暂停,但是最多只能暂停10秒。当然,我可以在一个节点中依次添加多个这样的暂停,但这并不是很好的样式。我要如何解决这个问题,而要等100秒钟,然后如果用户在这100秒钟内没有发送消息,则仅在以后发送消息?

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

2 个答案:

答案 0 :(得分:1)

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

您可以使用最后一个请求template<class F1, class F2> void f3(F1 f1, F2 f2) { f1(); // how do I call f1? I need to pass in the args... } 并创建一个 let colors = [ UIColor(hue: 0, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor, UIColor(hue: 1/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor, UIColor(hue: 2/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor, UIColor(hue: 0.5, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor, UIColor(hue: 4/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor, UIColor(hue: 5/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor, UIColor(hue: 1.0, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor ] let conicGradient = CAGradientLayer() conicGradient.type = .conic conicGradient.frame = bounds conicGradient.startPoint = CGPoint( x: 0.5, y: 0.5 ) conicGradient.endPoint = CGPoint( x: 1, y: 1 ) conicGradient.colors = colors as [Any] conicGradient.render( in: mContext ) // This doesn't work if let drawingContext = UIGraphicsGetCurrentContext() { drawingContext.draw( myContext.makeImage()!, in: bounds ) } ,如果您希望传递的自最后一个请求以来比向/message传递更多的条件,则添加一些条件,并发送一些消息你想要的。

setInterval

答案 1 :(得分:0)

使用最新的Watson Assistant,您可以执行以下操作- {   “时间”:5000,         “ typing”:是的,         “ response_type”:“暂停” }