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

标签 c# botframework azure-language-understanding azure-qna-maker

当QnAmaker没有任何响应以显示提示对话框时如何更改默认答案。

例如:

用户1:你好
机器人:你好!!
用户1:你卖车吗?
机器人:没有找到合适的匹配!

机器人应该提出可用服务列表,而不是找不到好的匹配

此外,每当未找到匹配项时,机器人都应再次提出可用服务列表。

如何实现这一目标?

最佳答案

QnAMakerAttribute 有一个 defaultMessage 参数,允许您自定义“不匹配”响应文本:https://github.com/Microsoft/BotBuilder-CognitiveServices/blob/7866f5a1bc970bdd0be341b9ba24c74067edf57c/CSharp/Library/QnAMaker/QnAMaker/QnAMakerService/QnAMakerAttribute.cs

public class BasicQnAMakerDialog : QnAMakerDialog 
{ 
  public BasicQnAMakerDialog() : base(
         new QnAMakerService(
                new QnAMakerAttribute(
                      Utils.GetAppSetting("QnASubscriptionKey"),
                      Utils.GetAppSetting("QnAKnowledgebaseId"),
                      "**List of services: one, two three**",
                      0.30,
                      8))) {} 
}

还有一个等待合并的拉取请求,该请求将允许覆盖发送默认消息:https://github.com/Microsoft/BotBuilder-CognitiveServices/pull/87在那之前,您唯一的选择似乎是在您自己的代码库中复制 QnAMakerDialog:QnAMakerDialog source

关于c# - 当 QnAmaker 没有任何响应时,QnAmaker 更改默认答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50253608/

相关文章:

botframework - MS Teams Bot Framework : Adaptive card Input. 本地化时的日期格式问题与英语不同

azure - 机器人(使用 MS 机器人框架创建)的 serviceUrl 是如何决定的

c# - 为什么范围索引对动态不起作用

node.js - 从 zip 安装 Teams Bot 应用程序时,不会触发 onMembersAdded 事件

c# - 如何访问现有的 NLog MemoryTarget

botframework - Web 应用程序机器人创建 (Azure) - 没有可见的 LUIS 应用程序

python - 以编程方式创建 LUIS APP Python SDK

botframework - 如何从微软机器人发送电子邮件?

c# - 如何使用 BouncyCaSTLe (C#) 导入 ASN.1 格式的 DSA 签名

c# - 如何将对象添加到包含另一个列表的列表