【问题标题】:Bot Framework 4.0 EquivalentBot Framework 4.0 等效
【发布时间】:2019-11-01 10:43:35
【问题描述】:

我正在构建一个机器人,但我遇到了 Bot Framework 4.0 的问题。 Bot Framework 4.0下面sn-p的等效代码是什么?

我无法为我的问题找到适用的代码 sn-ps。我试图从我的机器人类中调用一个对话框,但我只能从 Bot Framework 3.0 中找到适用的代码。代码sn-p如下:

if (entry)
            {
                JToken commandToken = JToken.Parse(turnContext.Activity.Value.ToString());
                string temp = turnContext.Activity.Value.ToString();
                Logger.LogInformation(temp);
                string command = commandToken["action"].Value<string>();

                if (command.ToLowerInvariant() == "purchaseorder")
                {
                    //call PurchaseOrderDialog
                }
                else if (command.ToLowerInvariant() == "sku")
                {
                    //call SKUNumberDialog
                }

            }

一旦确定用户请求的参数,我基本上是在寻找一种使用 Bot Framework 4.0 调用特定对话框的方法。我查看了 Microsoft 的 Bot Builder 4.0 文档,但找不到任何适用的文档。我对这个环境很陌生,所以我可能已经忽略了这个问题。我找到了一种方法,通过调用:

await Conversation.SendAsync(activity, () => new RootDialog());

但这是 Bot Framework 3.0 的语法。如果有人有任何建议,将不胜感激。

【问题讨论】:

标签: c# .net botframework bots


【解决方案1】:

你要找的是

await <TYPE>Context.BeginDialogAsync(nameof(<YOURDIALOGNAME>), <OPTIONAL_PARAMETERS>, cancellation token

上面的&lt;TYPE&gt; 表示您可以使用瀑布流,在这种情况下,它将是stepContext 或一个简单的对话框,即dialogContext

因此,对于上面的机器人,您将创建 PurchaseOrderDialog.csSKUNumberDialog.cs,然后按如下方式使用它们:

if (entry)
            {
                JToken commandToken = JToken.Parse(turnContext.Activity.Value.ToString());
                string temp = turnContext.Activity.Value.ToString();
                Logger.LogInformation(temp);
                string command = commandToken["action"].Value<string>();

                if (command.ToLowerInvariant() == "purchaseorder")
                {
                   return await context.BeginDialogAysnc(nameof(PurchaseOrderDialog), cancellationToken)
                }
                else if (command.ToLowerInvariant() == "sku")
                {
                    return await context.BeginDialogAysnc(nameof(SKUNumberDialog), cancellationToken)
                }

            }

Bot Framework 的 Samples Github Repo here 中的 CoreBot 是一个很好的例子,说明了复杂的对话框是如何工作的,并且有一个官方的操作文档 here 关于使用组件和瀑布对话框,这是 v4 独有的.

【讨论】:

  • 非常感谢!就是这样
猜你喜欢
  • 2023-01-26
  • 2020-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多