static async Task ProcessTexts() { string spellCheckKey = File.ReadAllText(@"security\bingSpellcheck.apiKey.private"); string apiUrl = File.ReadAllText(@"security\luis.apiUrl.private"); string apiKey = File.ReadAllText(@"security\luis.apiKey.private"); string appId = File.ReadAllText(@"security\luis.appId.private"); LuisService svc = new LuisService(apiUrl, apiKey, appId, spellCheckKey); string query1 = "I want to drink latte"; LuisServiceResult result1 = await svc.Query(query1); Console.WriteLine(result1.ToJson()); Console.WriteLine(); string query2 = "I LOVE coffee! I can't wait to drink more!!"; LuisServiceResult result2 = await svc.Query(query2); Console.WriteLine(result2.ToJson()); Console.WriteLine(); string query3 = "I am SO HUNGRY - need food!"; LuisServiceResult result3 = await svc.Query(query3); Console.WriteLine(result3.ToJson()); Console.WriteLine(); }
protected override async Task MessageReceived(IDialogContext context, IAwaitable <IMessageActivity> item) { LuisServiceResult winner = await GetWinner(context, item); if (winner == null) { throw new InvalidOperationException("No winning intent selected from Luis results."); } ILuisAction luisAction = this.actionResolver.ResolveActionFromLuisIntent(winner.Result, out string intentName); if (luisAction != null) { var executionContextChain = new ActionExecutionContext(intentName, luisAction).ToSingleList(); while (LuisActionResolver.IsContextualAction(luisAction)) { if (!LuisActionResolver.CanStartWithNoContextAction(luisAction, out LuisActionBindingAttribute luisActionDefinition)) { await context.PostAsync($"Cannot start contextual action '{luisActionDefinition.FriendlyName}' without a valid context."); return; } luisAction = LuisActionResolver.BuildContextForContextualAction(luisAction, out intentName); if (luisAction != null) { this.onContextCreation?.Invoke(luisAction, context); executionContextChain.Insert(0, new ActionExecutionContext(intentName, luisAction)); } } if (!luisAction.IsValid(out ICollection <ValidationResult> validationResults)) { var childDialog = new LuisActionMissingEntitiesDialog(winner.LuisService, executionContextChain); context.Call(childDialog, this.LuisActionMissingDialogFinished); } else { await this.DispatchToLuisActionActivityHandler(context, item, intentName, luisAction); } } }