为了账号安全,请及时绑定邮箱和手机立即绑定

一个简单的提示需要 WaterfallDialog 吗?

一个简单的提示需要 WaterfallDialog 吗?

C#
翻翻过去那场雪 2022-10-15 14:58:04
我是来自 v3 的 BotFramework v4 的新手,很难理解 v4 的对话概念我试图询问用户,例如他的年龄,然后我想结束对话我试图动态地将对话框添加到DialogSet但两者ContinueDialogAsync都ResumeDialogAsync不会被调用。对话在提示后立即结束,无需等待答案。这是 TextPrompt 的调用:dialogContext.Dialogs.Add(new TextPrompt("age"));return await dialogContext.PromptAsync("age", new PromptOptions{    Prompt = MessageFactory.Text("How old are you?")});我真的需要一步实现 WaterfallDialog 来实现这一点吗?
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

您不需要使用瀑布对话框。Simple Prompt Bot Sample应该可以帮助您入门。

相关代码片段

if (results.Status == DialogTurnStatus.Empty)

{

    // A prompt dialog can be started directly on the DialogContext. The prompt text is given in the PromptOptions.

    await dialogContext.PromptAsync(

        "name",

        new PromptOptions { Prompt = MessageFactory.Text("Please enter your name.") },

        cancellationToken);

}


// We had a dialog run (it was the prompt). Now it is Complete.

else if (results.Status == DialogTurnStatus.Complete)

{

    // Check for a result.

    if (results.Result != null)

    {

        // Finish by sending a message to the user. Next time ContinueAsync is called it will return DialogTurnStatus.Empty.

        await turnContext.SendActivityAsync(MessageFactory.Text($"Thank you, I have your name as '{results.Result}'."));

    }

}

}

有关更多信息,我在此问题上发布了类似的答案,并且我有一位同事在此处给出了类似的答案。



查看完整回答
反对 回复 2022-10-15
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

好的,我想自己回答这个问题:botframework v4 有一个IBot接口,每条消息都通过你实现的接口的单例实例进行路由。所以我的想法是,启动的对话会直接得到用户的响应。相反,您的实现IBot需要创建一个 dialogContext 并且还需要在OnTurnAsync方法中继续活动对话框:


var dialogContext = await _dialogs.CreateContextAsync(context, cancellationToken);


if (dialogContext.ActiveDialog is null)

{

    await dialogContext.BeginDialogAsync(nameof(AgeDialog),

        cancellationToken: cancellationToken);

}

else

{

    await dialogContext.ContinueDialogAsync(cancellationToken);

}



await _accessor.ConversationState.SaveChangesAsync(context, false, cancellationToken);



查看完整回答
反对 回复 2022-10-15
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号