【发布时间】:2017-07-25 22:27:59
【问题描述】:
我正在尝试根据意图触发多个 LUIS 对话框。但我面临的问题是,一旦触发子对话框,它就会自动触发父 LUIS 对话框中的回调方法。
我一直在关注 SO 的 post,它提到了同样的问题,但无法复制同样的成功。
这是我的代码 sn-p 供参考
[LuisIntent("ClaimStatus")]
public async Task ClaimStatus(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
string message = "";
message = "Sure, but first I would need to verify you.";
await context.PostAsync(message);
await context.Forward(new VerificationDialog(), VerificationDialogCompleted, context.Activity, CancellationToken.None);
}
private Task VerificationDialogCompleted(IDialogContext context, IAwaitable<object> result)
{
//var res = await result;
context.PostAsync("ProductsDialogCompleted" + result);
context.Wait(MessageReceived);
return Task.CompletedTask;
}
子对话框中的代码
override public async Task StartAsync(IDialogContext context)
{
await context.PostAsync("Would you please tell me your Customer ID?");
context.Wait(MessageReceived);
}
[LuisIntent("None")]
private async Task None(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
context.Done(true);
}
EDIT1:我还找到了一个 GitHub repo,它显示了同一作者在 SO 中的对话堆栈,但 LUIS 对话堆栈仍然没有按预期工作。
【问题讨论】:
-
你使用的是什么版本的 BotBuilder?
-
@EzequielJadib Microsoft.Bot.Builder v3.8.5
-
@EzequielJadibI 这里是消息控制器、根 & 子 luis 对话框作为 gist gist.github.com/PrasenjitGiri/eae50a3cccb7914bcf4eabda16e62309
-
如果您使用 v3.8.4,您能否快速检查是否会发生这种情况?
-
天啊!在过去的 5 天里,我一直在这 - 谢谢@EzequielJadib 如果您添加消息,如果您愿意,我可以接受。而且,你怎么读了这么多 - 我在 Bot 页面中没有看到这些内容 docs.microsoft.com/en-us/bot-framework/dotnet/…
标签: c# botframework azure-language-understanding