QNA chatbot "сказать отзыв" с Cortana - PullRequest
0 голосов
/ 29 мая 2019

Я создал QNA (qnamaker.ai) и чат-бота в Azure.Они подключены и делают то, что должны делать.Я активировал канал Cortana на Azure, чем если бы я использовал правильный метод вызова, он дает правильную обратную связь, просто он не разговаривает вообще.Я видел, что Кортана ответит устно, если вы вызвали или запросили речь, но, кажется, не работает.

Я пытался воссоздать все приложение, но это не решило мою проблему.Я создал базовое приложение C # UWP с базовым вопросом и тем, что говорит Кортана.

Код теперь является кодом чат-бота по умолчанию от Microsoft.

Я бы попросил вашего совета, если я пропущу какой-нибудьили мне просто нужно изменить код?

Спасибо за вашу помощь.

Габор

    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        var httpClient = _httpClientFactory.CreateClient();

        var qnaMaker = new QnAMaker(new QnAMakerEndpoint
        {
            KnowledgeBaseId = _configuration["QnAKnowledgebaseId"],
            EndpointKey = _configuration["QnAAuthKey"],
            Host = GetHostname()
        },
        null,
        httpClient);

        _logger.LogInformation("Calling QnA Maker");

        // The actual call to the QnA Maker service.
        var response = await qnaMaker.GetAnswersAsync(turnContext);
        if (response != null && response.Length > 0)
        {
            await turnContext.SendActivityAsync(MessageFactory.Text(response[0].Answer), cancellationToken);
        }
        else
        {
            await turnContext.SendActivityAsync(MessageFactory.Text("No QnA Maker answers were found."), cancellationToken);
        }

1 Ответ

0 голосов
/ 30 мая 2019

Образцы ботов не вызывают соответствующий API, чтобы говорить результаты.Вам необходимо добавить параметры для речевых и входных подсказок.Пожалуйста, смотрите

https://github.com/microsoft/cortana-skills-samples/blob/master/Consumer/CSharp/V4Patches/11.qnamaker.diff

Это показывает изменение, чтобы сделать это

                 await turnContext.SendActivityAsync(msg, speak: msg, inputHint: InputHints.AcceptingInput, cancellationToken: cancellationToken);
...