中断后返回瀑布对话框
Returning to Waterfall Dialog after Interrupt
我在使用 Luis 检测到中断后尝试 return 到我的 Waterfall Dialog 时遇到问题。
例如,我的 Waterfall 有 5 个步骤,在第 3 步中,Luis 检测到中断并正确回答,但是 Waterfall returns 到第 4 步并且不再询问第 3 步。
async interrupt(innerDc) {
if (innerDc.context.activity.text) {
const luisResult = await this.luisRecognizer.executeLuisQuery(innerDc.context);
switch (LuisRecognizer.topIntent(luisResult)) {
case 'TiempoDesembolso':
const getWeatherMessageText = 'El tiempo de desembolso actual es de 12 meses';
await innerDc.context.sendActivity(getWeatherMessageText, getWeatherMessageText, InputHints.IgnoringInput);
return await this.onContinueDialog(innerDc);
}
}
如何再次请求第3步,然后继续瀑布流?
您应该能够在案例语句中使用 return await innerDc.repromptDialog();
来重新提示活动对话框的最后一步。我使用了一个旧版本,它在我的 dispatchBot.js 主文件中有中断代码,而不是单独的 cancelAndHelpDialog 文件,但我认为方法是一样的。
我在使用 Luis 检测到中断后尝试 return 到我的 Waterfall Dialog 时遇到问题。 例如,我的 Waterfall 有 5 个步骤,在第 3 步中,Luis 检测到中断并正确回答,但是 Waterfall returns 到第 4 步并且不再询问第 3 步。
async interrupt(innerDc) {
if (innerDc.context.activity.text) {
const luisResult = await this.luisRecognizer.executeLuisQuery(innerDc.context);
switch (LuisRecognizer.topIntent(luisResult)) {
case 'TiempoDesembolso':
const getWeatherMessageText = 'El tiempo de desembolso actual es de 12 meses';
await innerDc.context.sendActivity(getWeatherMessageText, getWeatherMessageText, InputHints.IgnoringInput);
return await this.onContinueDialog(innerDc);
}
}
如何再次请求第3步,然后继续瀑布流?
您应该能够在案例语句中使用 return await innerDc.repromptDialog();
来重新提示活动对话框的最后一步。我使用了一个旧版本,它在我的 dispatchBot.js 主文件中有中断代码,而不是单独的 cancelAndHelpDialog 文件,但我认为方法是一样的。