QNA聊天机器人与Cortana“说出反馈”

时间:2019-05-29 12:23:21

标签: c# azure chatbot cortana qnamaker

我在Azure中创建了一个QNA(qnamaker.ai)和一个聊天机器人。他们建立联系并做应做的事情。我以天蓝色激活了Cortana频道,如果我使用正确的调用方法,它会给出正确的反馈,只是根本不说话。我看到,如果您用语音调用或查询语音,Cortana会口头回答,但似乎不起作用。

我试图重新创建整个应用程序,但无法解决我的问题。 我已经创建了一个基本的C#UWP应用,其中包含基本问题并与Cortana进行了交谈。

该代码现在是Microsoft的默认聊天机器人代码。

我想问你一个建议,如果我错过了某些设置还是只需要修改代码?

感谢您的帮助。

Gabor

    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 :(得分:0)

批处理样本不会调用适当的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);