/// <summary> /// Return the top scoring intent and its score. /// </summary> /// <param name="result">Recognizer result.</param> /// <returns>Intent and score.</returns> public static (string intent, double score) GetTopScoringIntent(this RecognizerResult result) { if (result == null) { throw new ArgumentNullException(nameof(result)); } if (result.Intents == null) { throw new ArgumentNullException(nameof(result.Intents)); } var topIntent = (string.Empty, 0.0d); foreach (var intent in result.Intents) { var score = (double)intent.Value["score"]; if (score > topIntent.Item2) { topIntent = (intent.Key, score); } } return topIntent; }
private async Task <DialogTurnResult> ManageIntentions(WaterfallStepContext stepContext, Microsoft.Bot.Builder.RecognizerResult luisResult, CancellationToken cancellationToken) { var TopIntent = luisResult.GetTopScoringIntent(); switch (TopIntent.intent) { case "Saludar": await IntentSaludar(stepContext, luisResult, cancellationToken); break; case "Agradecer": await IntentAgradecer(stepContext, luisResult, cancellationToken); break; case "Despedir": await IntentDespedir(stepContext, luisResult, cancellationToken); break; case "VerOpciones": await IntentVerOpciones(stepContext, luisResult, cancellationToken); break; case "Calificar": return(await IntentCalificar(stepContext, luisResult, cancellationToken)); case "None": await IntentNone(stepContext, luisResult, cancellationToken); break; default: break; } return(await stepContext.NextAsync(cancellationToken : cancellationToken)); }
private async Task <DialogTurnResult> ManageIntentions(WaterfallStepContext stepContext, Microsoft.Bot.Builder.RecognizerResult luisResult, CancellationToken cancellationToken) { var TopIntent = luisResult.GetTopScoringIntent(); switch (TopIntent.intent) { case "Saludar": await IntentSaludar(stepContext, luisResult, cancellationToken); break; /*case "Agradecer": * await IntentAgradecer(stepContext, luisResult, cancellationToken); * break; * case "Despedir": * await IntentDespedir(stepContext, luisResult, cancellationToken); * break;*/ case "MatrĂculas": await IntentMatriculas(stepContext, luisResult, cancellationToken); break; case "Video": await IntentVideo(stepContext, luisResult, cancellationToken); break; case "Perfil": await IntentPerfil(stepContext, luisResult, cancellationToken); break; case "Calificacciones": await IntentCalificaciones(stepContext, luisResult, cancellationToken); break; case "BuscarCurso": await IntentBuscarCurso(stepContext, luisResult, cancellationToken); break; case "Confirmacion": await Confirmacion(stepContext, luisResult, cancellationToken); break; case "VerOpciones": await IntentVerOpciones(stepContext, luisResult, cancellationToken); break; case "VerCentroContacto": await IntentVerCentroContacto(stepContext, luisResult, cancellationToken); break; case "Calificar": return(await IntentCalificar(stepContext, luisResult, cancellationToken)); case "None": await IntentNone(stepContext, luisResult, cancellationToken); break; default: break; } return(await stepContext.NextAsync(cancellationToken : cancellationToken)); }