如何获取LUIS意图分类的详细日志以排查Bot Framework问题?
在Bot Framework(含Composer)中查看LUIS意图分类详情的方法
一、通过Composer直接查看
- 在Composer的测试面板中发送用户消息后,打开右侧的跟踪选项卡,展开LUIS识别结果节点,就能看到所有被识别的意图及其对应的置信度分数,同时还能查看实体识别结果。
- 若需要更详细的原始LUIS响应数据,可以在跟踪选项卡中找到LuisRecognizer相关的日志条目,点击展开后查看
result字段下的完整JSON数据,其中包含每个意图的置信度、排名等信息。
二、通过代码自定义输出(适用于Bot Framework SDK)
如果使用Bot Framework SDK开发,可以在处理LUIS识别结果的代码中,直接访问识别对象的属性来获取意图置信度:
// 以C#为例,获取LUIS识别结果 var recognizerResult = await _luisRecognizer.RecognizeAsync(turnContext, cancellationToken); var topIntent = recognizerResult.GetTopScoringIntent(); // 输出最高置信度的意图及分数 await turnContext.SendActivityAsync($"识别到的意图:{topIntent.intent},置信度:{topIntent.score}"); // 遍历所有意图及其置信度 foreach (var intent in recognizerResult.Intents) { await turnContext.SendActivityAsync($"意图:{intent.Key},置信度:{intent.Value.Score}"); }
- 在JavaScript/TypeScript中,类似逻辑如下:
const recognizerResult = await luisRecognizer.recognize(turnContext); const topIntent = LuisRecognizer.topIntent(recognizerResult); const topScore = recognizerResult.intents[topIntent].score; await turnContext.sendActivity(`识别到的意图:${topIntent},置信度:${topScore}`); // 遍历所有意图 for (const [intentName, intentData] of Object.entries(recognizerResult.intents)) { await turnContext.sendActivity(`意图:${intentName},置信度:${intentData.score}`); }
三、利用LUIS门户查看测试结果
- 登录LUIS门户,进入对应的应用,在测试面板中输入用户消息,点击“测试”后,即可查看每个意图的置信度、实体识别情况,还能通过“检查”按钮查看详细的识别逻辑说明,帮助排查低置信度或误识别的场景。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

