【问题标题】:How to add a Dialog in a bot using SDK4.0如何使用 SDK4.0 在机器人中添加对话框
【发布时间】:2018-11-19 17:06:27
【问题描述】:

我正在尝试实现一个使用 Qna 服务和 Azure 搜索的机器人。

我正在使用C# QnA Maker sample github 代码的帮助。

它使用 BotServices.cs 类,该类在其构造函数中采用 QnA 服务。此 Botservice 对象正在传递给 QnABot 类构造函数。

我想使用 QnABot 的构造函数中设置的对话框,需要添加访问器。我真的不明白如何添加访问器类并在startup.cs中使用它们

我尝试从其他示例中复制一些代码,但没有成功。

请帮助我向 BotServices 构造函数添加一个访问器,以便我可以在其中使用对话框集。

我想为我的目的扩展 QnA 示例。

【问题讨论】:

    标签: botframework bots qnamaker


    【解决方案1】:

    您能告诉我们为什么要将对话框集传递给 botservices 类吗?该类仅用于引用 QnAMaker 和 LUIS 等外部服务。如果要启动 Dialog,请在 QnABot.cs 类的 OnTurnAsync 方法中执行此操作。请记住,在此特定示例中创建的此方法将对用户发送的每条消息发送响应,即使他们正在通过对话框工作。您可以更改 OnTurnAsync,使对话框中的第一步是检查 QnAMaker。请参阅 enterpriseBot 示例以了解如何启动对话框以及将访问器添加到子对话框。从 MainDialog.cs 类中查看他们如何添加访问器的以下内容:

    protected override async Task OnStartAsync(DialogContext innerDc, CancellationToken cancellationToken = default(CancellationToken))
    {
      var onboardingAccessor = _userState.CreateProperty<OnboardingState>(nameof(OnboardingState));
      var onboardingState = await onboardingAccessor.GetAsync(innerDc.Context, () => new OnboardingState());
    
      var view = new MainResponses();
      await view.ReplyWith(innerDc.Context, MainResponses.Intro);
    
      if (string.IsNullOrEmpty(onboardingState.Name))
      {
        // This is the first time the user is interacting with the bot, so gather onboarding information.
          await innerDc.BeginDialogAsync(nameof(OnboardingDialog));
      }
    }
    

    【讨论】:

    • 我按照this 教程添加对话框,他们说“在机器人的构造函数中创建对话框集,将提示和瀑布对话框添加到集合中。”所以我无法遵循它并在 QnAbot 的构造函数中再添加一个参数
    • 我不是要修改 botservice 类构造函数,而是要在其中向对话框集中添加对话框的 QnABot 构造函数。
    • 啊,好吧,我想我明白你想要做什么。您想像这样将 botAccessor 添加到 QnABot 构造函数: public QnABot(BotServices services, QnABotAccessor accessor){} 为此,还可以通过更新 StartUp.cs 中的 ConfigureServices 方法将访问器添加到机器人,如教程。像这样: services.AddSingleton(sp =>{// YOUR CODE HERE});您可以按照教程进行操作
    • 好的。谢谢。我会努力追随。以防万一,我遇到一些问题,会再次发布在这里
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多