protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { _logger.LogInformation("Calling QnA Maker"); QnAAnswerModel response = await _qnAService .GenerateAnswer(turnContext.Activity.Text, turnContext.Activity.Locale); if (response != null) { IEnumerable <string> suggestedActions = response.Context?.Prompts?.Select(p => p.DisplayText); if (suggestedActions != null) { await turnContext.SendActivityAsync( MessageFactory.SuggestedActions( response.Context?.Prompts?.Select(p => p.DisplayText), response.Answer), cancellationToken); } else { await turnContext.SendActivityAsync( MessageFactory.Text(response.Answer), cancellationToken); } } else { await turnContext.SendActivityAsync(MessageFactory.Text("No QnA Maker answers were found."), cancellationToken); } }
public async Task <DialogTurnResult> GetQnAAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken = default) { // Call QnA Maker and get results. _qnaResult = await _qnAService.GenerateAnswer(stepContext.Context.Activity.Text, stepContext.Context.Activity.Locale); if (_qnaResult == null) { // No answer found. await stepContext.Context.SendActivityAsync("No contemplamos esa opción."); return(await stepContext.EndDialogAsync()); } return(await stepContext.NextAsync()); }