我正在使用IBM Watson Assistant创建聊天机器人。我正在使用具有意图,实体和对话框流程的Web界面|树(我不知道它的名称,我只是称它为Web界面)。
我希望对话框中有一个节点,等待100秒,然后向用户发送另一条消息,但前提是用户之间没有发送另一条消息。我可以在节点中添加暂停,但是最多只能暂停10秒。当然,我可以在一个节点中依次添加多个这样的暂停,但这并不是很好的样式。我要如何解决这个问题,而要等100秒钟,然后如果用户在这100秒钟内没有发送消息,则仅在以后发送消息?
此外,我的聊天机器人(对话框树中的一个大分支)的流动非常线性。如果与聊天机器人的对话时间超过10分钟,我想停止聊天并跳出分支机构。我可以通过存储对话开始时的当前时间,然后检查每个节点的时间差是否大于10分钟,如果大于10分钟,然后跳出来解决该问题。但这又不是好风格。我该如何解决这个问题?
答案 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”:“暂停” }