gpt4 book ai didi

Azure QnAMaker 在日志中查看所有相关答案

转载 作者:行者123 更新时间:2023-12-03 02:43:09 25 4
gpt4 key购买 nike

我已开始使用 QnA Maker,并希望能够在日志中查看问题的所有答案以及随请求发送的分数阈值 。目前,我只能通过此 Kusto 查询看到问题的一个答案。

requests
| where url endswith "generateAnswer"
| project timestamp, id, url, resultCode, duration, performanceBucket
| parse kind = regex url with *"(?i)knowledgebases/"KbId"/generateAnswer"
| join kind= inner (
traces | extend id = operation_ParentId
) on id
| extend question = tostring(customDimensions['Question'])
| extend answer = tostring(customDimensions['Answer'])
| extend score = tostring(customDimensions['Score'])
| project timestamp, resultCode, duration, id, question, answer, score, performanceBucket, KbId

有人知道是否可以看到所有答案吗?

最佳答案

我正在使用这个确切的示例,并且似乎无法使用默认日志记录查看完整的答案列表。您需要记录 custom trace (或者您可能可以将其作为事件执行)并使用 API 调用返回的有效负载。您还需要在请求中设置 top 参数,否则无论如何您都只会收到一个答案(尽管我已确认设置 top 不会在默认应用洞察日志记录中显示其他答案)。

此外,应用程序洞察不支持数组(据我所知),因此您需要使用类似 flat 来展平结果。 .

这里是nodejs中的一些示例代码。其他语言的语法略有不同(有关自定义跟踪,请参阅上面的链接)。我直接调用 API,但如果您要导入 QnA 模块,我预计这会以相同的方式工作。

const qnaResult = await request({
url: url,
method: 'POST',
headers: headers,
json: {
question: query,
top: 3,
context: qnAcontext
}
});
flatQnaResult = flatten(qnaResult);
appInsightsClient.trackTrace({message: 'QnA Custom Trace',severity: 1,properties: flatQnaResult});

如果您使用 flat,您会发现相关答案和分数为 answers.i.answeranswers.i.score,其中 i 是您的索引。这不会显示您设置的阈值。也许这是因为我在 QnA Maker 调用之外处理该问题,以便更好地控制操作(例如,在某些机器人中,如果主要调用中未满足阈值,我会调用单独的 QnA KB,而不是提供默认消息)。

如果您将阈值设置为调用的一部分,我不能 100% 确定是否会在有效负载中返回阈值。如果没有,您可以随时将其添加到 flatQnaResults 对象中,然后再将其记录到应用洞察中(例如 flatQnaResults.threshold = YOUR_THRESHOLD)。

关于Azure QnAMaker 在日志中查看所有相关答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60113244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com