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

当 QnAmaker 没有任何响应时,QnAmaker 更改默认答案

当 QnAmaker 没有任何响应时,QnAmaker 更改默认答案

C#
12345678_0001 2021-06-04 09:01:19
QnAmaker 没有任何响应以显示提示对话框时如何更改默认答案。例如:用户1:你好机器人:你好!!用户1:你卖车吗?机器人:没有找到好的匹配!机器人应该提出一个可用服务列表,而不是No good match found。此外,只要没有找到匹配项,机器人就应该再次提出可用服务列表。这怎么可能实现?
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

因为有几种不同的方法可以将 QnA maker 与 botframework 一起使用,所以对于您目前遇到的问题有很多不同的建议,但目前微软围绕它的正确指导方针并不多。(至少不是我发现的)


我遇到了针对 QnA 制造商 git 存储库列出的这个问题:在这里找到。有一些不同的建议,所以我将在下面列出它们,从最少到最努力。


选项 1:[假设您正在创建一个连接到 QnA maker 的基本对话框类]


public BasicQnAMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(ConfigurationManager.AppSettings["QnASubscriptionKey"], ConfigurationManager.AppSettings["QnAKnowledgebaseId"], "No good match in FAQ")))

选项 2:[只需注意默认返回的特定字符串并“覆盖”它]


protected override async Task RespondFromQnAMakerResultAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result)

{

    var answer = result.Answers.First().Answer;

    Activity reply = ((Activity)context.Activity).CreateReply();

    if (reply.Text.equals("Not Match Found!))

         reply.Text = "No good match in FAQ";

    await context.PostAsync(reply);

}   

当 QnAMaker 仍处于预览状态时,有些情况下选项 1 无法按预期工作。在我看来,选项 2 并不那么简洁,但它是一个不错的解决方法。


正如 Eric 在他的回答中所说,在他们的 git repo 中有一个活动的 pull request 正在等待针对这个问题的合并。所以最终这将是一个更容易处理的事情。在此之前,希望上述两个选项会有所帮助。


查看完整回答
反对 回复 2021-06-05
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信