0

针对查询 QnAMaker 实例的 Azure Web App Bot 服务以及直接针对该实例的特定 QnAMaker 服务执行的查询,我对我的问题(西班牙语)的回答存在差异。

对于这个特定案例,我在 Bot 的网络聊天和 QnAMaker 测试聊天中执行了相同的问题。在 Bot 的网络聊天检索到的几个回复中,我收到了默认消息(例如,如果问题与答案不匹配),而在 QnAMaker 测试聊天检索到的回复中,我收到了知识库中匹配的答案。

在下面的屏幕截图中找到两个聊天的结果:

Bot 的网络聊天响应: Bot Chat Screenshot 01 Bot Chat Screenshot 02

QnAMaker 测试聊天响应: QnAMaker 聊天屏幕截图 01 QnAMaker 聊天屏幕截图 01

检查了将 QnAMaker 服务与 Bot 集成的整个配置,看起来还不错。甚至,用于在 Bot 的应用程序设置中执行查询的 QnaThreshold 设置为 0.04(4% 匹配)以确保不过滤结果。

我猜这个问题是针对 QnAMaker 服务构建 POST 请求的 Bot 模块之间的配置差异。

谁能帮我解决这个问题,以确保机器人执行的请求与 QnAMaker 测试聊天执行的请求相同,并通过两个聊天获得相同的结果。

谢谢

4

3 回答 3

1

替代问题可以提高与用户查询匹配的可能性。您可以尝试将该短语作为替代问题添加到现有 QnA 对。

用于在 Bot 的应用程序设置中执行查询的 QnaThreshold 设置为 0.04

要解决此问题,您可以尝试将ScoreThreshold设置为 0,然后覆盖RespondFromQnAMakerResultAsync并检查QnAMakerResultQnAMaker 服务返回的实际值。

于 2018-05-23T07:08:41.353 回答
1

问题已经解决了。问题是由应用程序设置变量的数据类型产生的。这些值是在 IBM852 中编码到 process.env 对象中的字符串,当 Javascript 将它们转换为浮点或整数类型时,生成的值不正确。在使用 app.js 中的应用设置变量之前应用相应的转换函数,如 parseFloat() 或 parseInt() 将解决问题。

感谢 Microsoft 的 Web 应用支持工程师 Tyrel Roesler 帮助我发现了问题。

于 2018-05-24T15:29:29.423 回答
1

我看到您提出的问题与“donde comprar entradas”<>“donde compro entradas”不完全相同,这可以解释一些差异。

然后,我认为 QnA Maker 测试聊天使用某种暂存环境,而 Azure Bot Chat 使用最新发布的 KB 版本。

你确定你已经发布了你最后的更改吗?

于 2018-05-23T09:14:49.733 回答