使用Luis检测到中断后,尝试返回我的瀑布对话框时遇到问题。 例如,我在瀑布中有5个步骤,在步骤3中,路易斯检测到中断并正确回答,但是瀑布返回到步骤4,并且不再询问步骤3。
import java.net.URLDecoder
object Decode {
def main(args: Array[String]): Unit = {
val input = "a=1&b=2&c=&a=4";
println(separate(input))
}
def separate(input: String) : Map[String, List[Option[String]]] = {
case class Parameter(key: String, value: Option[String])
def separateParameter(parameter: String) : Parameter =
parameter.split("=")
.map(e => URLDecoder.decode(e, "UTF-8")) match {
case Array(key, value) => Parameter(key, Some(value))
case Array(key) => Parameter(key, None)
}
input.split("&").toList
.map(p => separateParameter(p))
.groupBy(p => p.key)
.mapValues(vs => vs.map(p => p.value))
}
}
我如何再次要求步骤3,然后继续瀑布流?
答案 0 :(得分:0)
您应该能够在case语句中使用return await innerDc.repromptDialog();
来重新提示活动对话框的最后一步。我使用的是旧版本,该版本在我的主dispatchBot.js文件中包含中断代码,而不是在单独的cancelAndHelpDialog文件中,但是我认为方法是相同的。