要在Application Insights中记录QNA Maker机器人的问题和答案,你可以使用以下代码示例:
using Microsoft.ApplicationInsights;
using Microsoft.Bot.Builder.AI.QnA;
// 创建 Application Insights 客户端
TelemetryClient telemetryClient = new TelemetryClient();
// 创建 QnAMaker 实例
QnAMaker qnaMaker = new QnAMaker(new QnAMakerEndpoint
{
KnowledgeBaseId = "",
EndpointKey = "",
Host = ""
});
// 发送问题给 QnAMaker
var query = "";
var qnaResults = await qnaMaker.GetAnswersAsync(query);
// 记录问题和答案到 Application Insights
foreach (var result in qnaResults)
{
var properties = new Dictionary
{
{ "Question", query },
{ "Answer", result.Answer },
{ "Score", result.Score.ToString() }
};
// 发送自定义事件到 Application Insights
telemetryClient.TrackEvent("QnAMakerResult", properties);
}
// 将记录发送到 Application Insights
telemetryClient.Flush();
上述代码中,我们首先创建了一个Application Insights客户端,然后创建了一个QnAMaker实例。接下来,我们发送用户查询给QnAMaker并获取回答。然后,我们遍历所有回答并将问题、答案和得分作为自定义事件记录到Application Insights中。最后,我们调用Flush()
方法将记录发送到Application Insights。
确保替换代码中的
、
和
为你自己的QnAMaker知识库ID、终结点密钥和主机名。
这样,当用户查询QnAMaker并获取回答时,相关信息将被记录到Application Insights中。