我对我的问题(西班牙语)的响应存在差异,这些响应针对Azure Web App Bot服务执行,该服务查询QnAMaker实例以及针对该实例的特定QnAMaker服务直接执行的查询。
对于这个特定情况,我在Bot的网络聊天和QnAMaker测试聊天上执行了相同的问题。在Bot的Web Chat检索到的几个响应中,我得到了默认消息(如果问题与答案不匹配),而在QnAMaker Test Chat检索到的响应中,我获得了知识库中匹配的答案。 / p>
在下面的两个聊天中找到包含结果的屏幕截图:
Bot的网络聊天回复: Bot Chat Screenshot 01 Bot Chat Screenshot 02
QnAMaker测试聊天响应: QnAMaker Chat Screenshot 01 QnAMaker Chat Screenshot 01
检查了将QnAMaker服务与Bot集成的整个配置,看起来没问题。甚至,用于在Bot的应用程序设置中执行查询的QnaThreshold也设置为0.04(4%匹配),以确保不过滤结果。
我想问题是Bot的模块之间的配置差异,该模块针对QnAMaker服务构建POST请求。
任何人都可以帮我解决这个问题,以确保Bot执行的请求与QnAMaker Test Chat执行的请求相同,并通过两个聊天获得相同的结果。
由于
答案 0 :(得分:1)
Alternate questions可以提高与用户查询匹配的可能性。您可以尝试将该短语添加为现有QnA对的备用问题。
用于在Bot的App Settings中执行查询的QnaThreshold设置为0.04
要解决此问题,您可以尝试将 ScoreThreshold 设置为0,然后覆盖RespondFromQnAMakerResultAsync
并检查返回的实际QnAMakerResult
QnAMaker服务。
答案 1 :(得分:1)
我看到你问的问题并不完全一样 “donde comprar entradas”<> “donde compro entradas”,这可以解释一些差异。
然后,我认为QnA Maker测试聊天使用某种登台环境,而Azure Bot Chat使用最新发布的KB版本。
您确定已发布上次更改吗?
答案 2 :(得分:1)
问题已经解决了。 问题是由App Settings变量的数据类型生成的。这些值是在IBM852中编码到process.env对象中的字符串,当Javascript将它们转换为float或integer类型时,生成的值不正确。 在app.js中使用app设置变量之前应用各自的转换函数(如parseFloat()或parseInt())将解决问题。
感谢Microsoft的Web应用程序支持工程师Tyrel Roesler帮助我发现问题。