gpt4 book ai didi

c# - MS BOT 更改根对话框

转载 作者:行者123 更新时间:2023-11-30 16:42:23 25 4
gpt4 key购买 nike

是否存在在对话期间将根对话框更改为不同对话框的方法:

Conversation.SendAsync((IMessageActivity)context.Activity, () => new RootDialogA())

我们有一个应用程序,它从一个根对话框开始,在某些时候我们想运行另一个根对话框:

Conversation.SendAsync((IMessageActivity)context.Activity, () => new RootDialogB())

最佳答案

是的。使用 context.Call()context.Forward() 您可以在对话框之间切换。请看this sample project

通常人们所做的是拥有一个根对话,它根据对话的上下文路由到另一个对话。这是我认为根对话框使用 context.Call() 方法路由到另一个对话框的示例示例:

private async Task SendWelcomeMessageAsync(IDialogContext context)
{
await context.PostAsync("Hi, I'm the Basic Multi Dialog bot. Let's get started.");

context.Call(new NameDialog(), this.NameDialogResumeAfter);
}

您必须提供一个 resume after 方法,该方法会在调用的对话框完成时触发。在示例中,它看起来像这样:

private async Task NameDialogResumeAfter(IDialogContext context, IAwaitable<string> result)
{
try
{
this.name = await result;

context.Call(new AgeDialog(this.name), this.AgeDialogResumeAfter);
}
catch (TooManyAttemptsException)
{
await context.PostAsync("I'm sorry, I'm having issues understanding you. Let's try again.");

await this.SendWelcomeMessageAsync(context);
}
}

关于c# - MS BOT 更改根对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46833349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com