QnA bot仅在Azure和团队聊天

时间:2018-05-03 17:30:24

标签: azure azure-bot-service

我在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 :(得分: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)))
        {}

请注意"没有好的匹配"文本实际上设置为" FAQ"中没有匹配,最小置信度得分为0.5。

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

改善您的机器人

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

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