【问题标题】:QnaMakerDialog too many attemptsQnaMakerDialog 尝试次数过多
【发布时间】:2018-02-28 19:37:49
【问题描述】:

我使用 pakage qna maker 开发了一个机器人,我需要更改 tooManyAttempts 资源的标签,因为在法语中它不是最好的词。 我可以更改资源吗?或者我可以跟踪 tooManyAttempts 变量来改变他的值吗?

感谢您的帮助

【问题讨论】:

  • 您添加了 [chatbot] 标签,您使用的是 [botframework] 吗?您说的是哪个 tooManyAttemps 标签,当您在多个匹配时选择一个值时的那个标签?
  • 是的,我使用 botframework。我正在谈论那个。我无法拦截它

标签: c# chatbot microsoft-cognitive qnamaker


【解决方案1】:

如果你在 Github (here) 上查看QnAMakerDialog 的实现,你会发现这里声明了消息:

protected virtual async Task QnAFeedbackStepAsync(IDialogContext context, QnAMakerResults qnaMakerResults)
{
    var qnaList = qnaMakerResults.Answers;
    var questions = qnaList.Select(x = >x.Questions[0]).Concat(new[] {
        Resource.Resource.noneOfTheAboveOption
    }).ToArray();

    PromptOptions < string > promptOptions = new PromptOptions < string > (
    prompt: Resource.Resource.answerSelectionPrompt, tooManyAttempts: Resource.Resource.tooManyAttempts, options: questions, attempts: 0);

    PromptDialog.Choice(context: context, resume: ResumeAndPostAnswer, promptOptions: promptOptions);
}

如您所见,抛出TooManyAttemptsException 时发送的消息在包的Res​​ources 中:Resource.Resource.tooManyAttempts

您可以考虑覆盖该方法,但您很快就会面临不得不引用未定义方法的问题:这里的ResumeAndPostAnswer 被定义为私有的,因此不可见。

遗憾的是,其中一种解决方案是从 GitHub 项目中获取所有必要的资源(也就是说,获取几乎所有的 QnAMakerDialog 实现)

【讨论】:

  • 所以无法追踪这个值?
  • 正如我所说,你可以做到,但你必须从 github 获取几个类来重新实现你身边的所有 QnADialog
猜你喜欢
  • 1970-01-01
  • 2019-02-07
  • 2019-03-20
  • 2019-04-04
  • 2021-01-13
  • 2020-06-29
  • 1970-01-01
  • 2012-01-18
相关资源
最近更新 更多