Botframework 是否有更好的方法从dispatcher LUIS模型中获得相应分数的最高意图

Botframework 是否有更好的方法从dispatcher LUIS模型中获得相应分数的最高意图,botframework,azure-language-understanding,Botframework,Azure Language Understanding,我有这方面的代码,这正是我从相应的luis模型中获得最高意图的方式,但我想知道是否有更好的方式来做到这一点,比如直接针对调度器的框架中存在的东西 public异步getIntent(结果){ trace('getIntent result',result); if(result.luisResult.connectedServiceResult){ logger.trace('intent score',result.luisResult.connectedservicesult.topScor

我有这方面的代码,这正是我从相应的luis模型中获得最高意图的方式,但我想知道是否有更好的方式来做到这一点,比如直接针对调度器的框架中存在的东西

public异步getIntent(结果){
trace('getIntent result',result);
if(result.luisResult.connectedServiceResult){
logger.trace('intent score',result.luisResult.connectedservicesult.topScoringIntent.score)
const topIntent=result.luisResult.connectedServiceResult.topCoringIntent.intent;
const score=result.luisResult.connectedservicesult.topScoringIntent.score;
返回等待新的TopIntent(TopIntent,分数);
}否则{
返回
}
}

这就是我为缓解问题所做的。v3与v2 LUIS Api结构非常不同。要跳过的篮圈似乎有点过多。希望在下一个版本中,这将是地址

希望这能帮助其他人。这是针对v3 LUIS api的

/**
*返回将对应的特定路易斯模型意图中的最高得分意图的名称
*具有从调度器触发的意图
*@param要搜索的结果集。
*@param defaultIntent(可选)如果找到顶级意图,则返回的意图名称。默认值为“无”。
*@param minScore(可选)将某个意图视为最高意图所需的最低分数。如果集合中的所有意图都低于此阈值,则将返回“defaultIntent”。默认值为“0.0”。
*/
公共异步modelTopIntent(结果:RecognizerResult |未定义,defaultIntent:string='None',minScore:number=0):承诺{
让topIntent:字符串;
让上堆芯:编号=-1;
if(result&&result.luisResult){
const topIntentWithScore=等待结果.luisResult.prediction.intents[luisRecogniter.topIntent(结果)].childApp.topIntent;
const topIntentsObject=等待结果.luisResult.prediction.intents[luisRecogniter.topIntent(结果)].childApp.intents;
//获取top intents对象以提取分数
const filteredinent=topIntentWithScore;
const filtered=Object.keys(topIntentsObject)
.filter(key=>filteredIntent.includes(key))
.reduce((对象,键)=>{
返回{
…obj,
[键]:topIntentsObject[键]
};
}, {});
//高分
常量分数:数字=已筛选的[topIntentWithScore]['score'];
如果(分数类型=='number'&&score>topScore&&score>=minScore){
topIntent=topIntentWithScore
上核=得分;
}
} 
返回等待新的TopIntent(TopIntent | | defaultIntent,topScore)
}
只是为了比较,这是v2

public异步getIntent(结果){
trace('getIntent result',result);
if(result.luisResult.connectedServiceResult){
logger.trace('intent score',result.luisResult.connectedservicesult.topScoringIntent.score)
const topIntent=result.luisResult.connectedServiceResult.topCoringIntent.intent;
const score=result.luisResult.connectedservicesult.topScoringIntent.score;
返回等待新的TopIntent(TopIntent,分数);
}否则{
返回
}
}