微软Bot框架中的多瀑布对话

问题描述 投票:1回答:1

在微软Bot框架中,可以有多个瀑布对话吗?

我有一个 Rootdialog (派生自ComponentDialog (WaterfallDialog)),它接受用户的初始输入。我想用这个对话来启动一个外部服务的登录过程。一旦登录成功,我想根据用户的初始输入启动一个特定的瀑布对话。

例如,用户说

流程1 --> 启动根对话(用于登录过程)--> 启动Flow1(瀑布)对话。

流程2 --> 启动根对话(用于登录过程)--> 启动Flow2(瀑布)对话。

我试着这样做,但当我调用 BeginDialogAsync 从根部对话,它挂

return await stepContext.BeginDialogAsync("flow1", null, cancellationToken);

请让我知道我在这里遗漏了什么,先谢谢你。

botframework
1个回答
2
投票

是的,在机器人框架中,有多个瀑布对话是非常可能的。有一个概念是 瀑布对话 在机器人框架v4中,瀑布接受一个将按顺序执行的函数堆栈。对话的每一步都被实现为一个异步函数,该函数接受一个瀑布步上下文(step)参数。每一个瀑布步骤都可以向用户提出一个问题,用户的响应将被传递到瀑布的下一个步骤。你也有 组件对话框 允许您重复使用对话框集。

请参考 多重提示 示例,它使用一个瀑布式对话框、一些提示和一个组件对话框来创建一个简单的交互,向用户提出一系列问题,并使用了 机器人认证 样品。

希望对大家有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.