Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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());
        }