0
我想基於意圖觸發多個LUIS對話框。但是我面臨的問題是一旦子對話框被觸發,它會自動觸發父LUIS對話框中的回調方法。LUIS多個IDialog
我一直在關注SO的post,它提到了同樣的問題,但無法複製同樣的成功。
這裏是我的參考
[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,顯示對話堆棧由同一作者左右,但仍LUIS對話框堆棧未按預期工作。
您正在使用的是哪個版本的BotBuilder? –
@EzequielJadib Microsoft.Bot.Builder v3.8.5 – user6083088
@EzequielJadibI這裏是消息控制器,根和兒童luis對話框作爲gist https://gist.github.com/PrasenjitGiri/eae50a3cccb7914bcf4eabda16e62309 – user6083088