gpt4 book ai didi

c# - 如何在对话框中调用瀑布对话框 - Azure Bot builder

转载 作者:行者123 更新时间:2023-12-03 04:06:21 24 4
gpt4 key购买 nike

在我的 azure 机器人中,我有默认机器人“DialogBot.cs”。在其 OnMessageActivityAsync() 方法中,我想根据用户输入调用特定的瀑布。

但是,一旦我解析了输入,我就不知道如何触发特定的瀑布。假设瀑布被称为“SpecificDialog”。我试过这个:

await Dialog.RunAsync(turnContext, ConversationState.CreateProperty<DialogState>(nameof(SpecificDialog)), cancellationToken) ;

但这不起作用。我该如何实现这个目标?

最佳答案

我假设您正在使用其中一个示例。我的答案将基于 CoreBot .

您应该将 Dialog.RunAsync() 调用的对话框视为所有其他对话框分支和流动的“根”或“父”对话框。要更改此调用的对话框,请查看 Startup.cs for a line that looks like this :

// Create the bot as a transient. In this case the ASP Controller is expecting an IBot.
services.AddTransient<IBot, DialogAndWelcomeBot<MainDialog>>();

要将其更改为 MainDialog 以外的对话框,只需将其替换为适当的对话框即可。

一旦进入根对话框或父对话框,您 call another dialog with BeginDialogAsync() :

stepContext.BeginDialogAsync(nameof(BookingDialog), new BookingDetails(), cancellationToken);
<小时/>

仅供其他人引用:

这在 Node.js 中的工作方式略有不同。在 CoreBot 中,the MainDialog is passed to the bot in index.js :

const dialog = new MainDialog(luisRecognizer, bookingDialog);
const bot = new DialogAndWelcomeBot(conversationState, userState, dialog);

[...]

// Listen for incoming activities and route them to your bot main dialog.
server.post('/api/messages', (req, res) => {
// Route received a request to adapter for processing
adapter.processActivity(req, res, async (turnContext) => {
// route to bot activity handler.
await bot.run(turnContext);

你可以看到它调用了DialogAndWelcomeBot ,延伸DialogBot , which calls MainDialog on every message :

this.onMessage(async (context, next) => {
console.log('Running dialog with Message Activity.');

// Run the Dialog with the new message Activity.
await this.dialog.run(context, this.dialogState);

// By calling next() you ensure that the next BotHandler is run.
await next();
});

不必以这种方式设置您的机器人,但这是当前推荐的设计,如果您遵循此设计,您将可以更轻松地实现我们的文档和示例。

关于c# - 如何在对话框中调用瀑布对话框 - Azure Bot builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59689055/

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