首页 文章

QnA bot仅在Azure和Teams Chat中使用精确的措辞时才会响应

提问于
浏览
1

我在Microsoft QnA Maker中创建了一个机器人,并且现在已经在Maker中测试了QnA对 . 即使在问题中使用了其他单词,机器人也能够识别我所做的QnA对 . 但是,在Azure测试聊天和团队聊天中引入机器人并对其进行测试后,我发现机器人只在使用确切的问题措辞时才会做出适当的响应 .

机器人有一个QnA对,问题是“你好” . 在QnA Maker Test中,如果我发送此问题的变体,例如“hello wicky”或“hello there”,那么机器人会识别该对并以适当的答案作出响应 . 在Azure和Teams中进行测试时,如果我说“你好”,机器人只会做出相应的响应 . 如果我说任何变化,那么它只是回答“在FAQ中没有好的匹配” .

在QnA Maker中进行测试时,我的机器人在回答包含其他单词的问题时从未遇到过问题,但这不是一个确切的问题 . 在Azure和团队中进行测试时,它似乎只是挑剔 . 我已多次重新发布机器人,并确保知识库ID和订阅密钥正确无误 . 我有什么选择?

Screenshot of the Azure Test Chat

1 回答

  • 0

    这是要检查的东西 . 如果您正在使用Bot服务的入门代码,那么您很可能从QnAMakerDialog继承了一个Dialog . 构造函数需要几个参数,包括在没有良好匹配时返回的消息,以及何时返回无匹配文本的最小置信度分数 . 例如,这是继承自QnAMakerDialog的我的类的构造函数:

    public BasicQnAMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(Utils.GetAppSetting("QnASubscriptionKey"), Utils.GetAppSetting("QnAKnowledgebaseId"), "No good match in FAQ.", 0.5)))
            {}
    

    请注意,“No good match”文本实际上设置为“FAQ中没有匹配”,最小置信度得分为0.5 .

    如果您签入QnAMaker测试聊天,您应该会看到与消息一起返回的置信度分数 . 您可以尝试降低最低置信度分数,以防止获得不良匹配消息 .

    Improving your bot

    您可以在QnAMaker中为机器人添加备用短语,然后重新训练并发布模型 . 洗涤,冲洗,重复 . 您也可以尝试记录QnAMaker返回低于阈值的置信度得分的问题 . 这将为您提供一个问题的起点,您的用户会询问您的机器人哪里没有很好的答案 .

    根据您的知识领域,您可能还会尝试搜索网络并总结最佳结果,然后将其返回给用户,而不仅仅是“未找到匹配项” . 这就是Siri干涸时所做的事情,这几乎就是我所要求的一切 .

相关问题