private RecognizerResult CreateChooseIntentResult(string text, Dictionary <string, RecognizerResult> recognizerResults) { // create IntentScore with { "recognizerId" : { ...RecognizerResult.. } } var chooseIntentResult = new IntentScore() { Score = 0.5F }; var intents = new JObject(); foreach (var recognizerResult in recognizerResults.Values) { var(topIntent, score) = recognizerResult.GetTopScoringIntent(); chooseIntentResult.Properties[topIntent] = recognizerResult; } return(new RecognizerResult() { Text = text, Intents = new Dictionary <string, IntentScore>() { { ChooseIntent, (IntentScore)chooseIntentResult } } }); }
private Task <RecognizerResult> RecognizeInternalAsync(ITurnContext turnContext, CancellationToken cancellationToken) { var text = turnContext.Activity.Text; if (string.IsNullOrWhiteSpace(text)) { return(null); } else { foreach (var regexMap in _map) { var match = regexMap.Key.Match(text); if (match.Success) { var score = new IntentScore() { Score = 1.0 }; var intents = new Dictionary <string, IntentScore> { { regexMap.Value, score } }; return(Task.FromResult(new RecognizerResult() { Text = text, Intents = intents, })); } } return(null); } }
private (Intent intent, double score) UpdateCalendarLuisResultMock() { if (userInput == "update meeting") { IntentScore intentScore = new IntentScore(); intentScore.Score = 0.9; this.Intents.Add(Calendar.Intent.ChangeCalendarEntry, intentScore); return(Calendar.Intent.ChangeCalendarEntry, 0.90); } return(Calendar.Intent.None, 0.0); }
private (Intent intent, double score) NextCalendarLuisResultMock() { if (userInput == "what is my next meeting") { IntentScore intentScore = new IntentScore(); intentScore.Score = 0.9; this.Intents.Add(Calendar.Intent.NextMeeting, intentScore); return(Calendar.Intent.NextMeeting, 0.90); } return(Calendar.Intent.None, 0.0); }
public virtual Task <RecognizerResult> LuisIntentChange(DialogContext outerDc, RecognizerResult result, object options = null, CancellationToken cancellationToken = default) { //Kvoli volaniu NONE intentu kedže NONE intent nie je dialog if (result.GetTopScoringIntent().intent.ToLower() == "none") { result.Intents.Clear(); IntentScore score = new IntentScore { Score = 1 }; result.Intents.Add(nameof(RootDialog), score); } return(Task.FromResult(result)); }
private (Intent intent, double score) SummaryCalendarTestLuisResultMock() { if (userInput == "What should I do today") { IntentScore intentScore = new IntentScore(); intentScore.Score = 0.9; this.Intents.Add(Calendar.Intent.Summary, intentScore); return(Calendar.Intent.Summary, 0.90); } else if (userInput == "No") { return(Calendar.Intent.None, 0.90); } return(Calendar.Intent.None, 0.0); }
private (Intent intent, double score) CreateCalendarLuisResultMock() { if (userInput == "Create a meeting") { IntentScore intentScore = new IntentScore(); intentScore.Score = 0.9; this.Intents.Add(Calendar.Intent.CreateCalendarEntry, intentScore); return(Calendar.Intent.CreateCalendarEntry, 0.90); } else if (userInput == "Yes") { return(Calendar.Intent.None, 0.90); } return(Calendar.Intent.None, 0.0); }
private Task <RecognizerResult> RecognizeInternalAsync(ITurnContext turnContext, CancellationToken cancellationToken) { string text = GetPlainText(turnContext); var emptyResult = Task.FromResult(new RecognizerResult() { Text = string.Empty, Intents = new Dictionary <string, IntentScore> { { "None", new IntentScore() { Score = 1.0, } }, }, }); if (string.IsNullOrWhiteSpace(text)) { return(emptyResult); } else { foreach (var intent in IntentStrings.All) { var regex = new Regex($@"^{intent}$", RegexOptions.IgnoreCase); var match = regex.Match(text); if (match.Success) { var score = new IntentScore() { Score = 1.0 }; var intents = new Dictionary <string, IntentScore> { { intent, score } }; return(Task.FromResult(new RecognizerResult() { Text = text, Intents = intents, })); } } return(emptyResult); } }
protected async Task <RecognizerResult> OnRecognize(SequenceContext sequenceContext, CancellationToken cancellationToken = default) { var context = sequenceContext.Context; if (Recognizer != null) { var result = await Recognizer.RecognizeAsync(sequenceContext, cancellationToken).ConfigureAwait(false); if (result.Intents.Any()) { // just deal with topIntent IntentScore topScore = null; var topIntent = string.Empty; foreach (var intent in result.Intents) { if (topScore == null || topScore.Score < intent.Value.Score) { topIntent = intent.Key; topScore = intent.Value; } } result.Intents.Clear(); result.Intents.Add(topIntent, topScore); } else { result.Intents.Add("None", new IntentScore { Score = 0.0 }); } return(result); } // none intent if there is no recognizer return(new RecognizerResult { Text = context.Activity.Text ?? string.Empty, Intents = new Dictionary <string, IntentScore> { { "None", new IntentScore { Score = 0.0 } } }, }); }