如何从LUIS调用QnA制造商在C#v4中无意图

时间:2019-07-24 16:31:45

标签: c# botframework luis qnamaker

除了使用Dispatcher之外,我想知道是否可以从LUIS的“无”意图中调用QnA制造商? ---我正在C#V4中使用最新的CoreBot模板来构建我的机器人。 有代码片段吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可能会最好使用nlp-with-dispatch示例而不是CoreBot模板作为起点,因为它已经完成了LUIS和QnA制造商的所有连接工作。

如果您已经具有QnA Maker KB和LUIS调度应用程序设置,则只需要在appsettings.json文件中输入相关密钥,否则您将必须完成指南{ {3}},然后才能在本地运行该机器人。

一旦您运行了该漫游器,您就会对here感兴趣:

private async Task DispatchToTopIntentAsync(ITurnContext<IMessageActivity> turnContext, string intent, RecognizerResult recognizerResult, CancellationToken cancellationToken)
{
    switch (intent)
    {
        case "l_HomeAutomation":
            await ProcessHomeAutomationAsync(turnContext, recognizerResult.Properties["luisResult"] as LuisResult, cancellationToken);
            break;
        case "l_Weather":
            await ProcessWeatherAsync(turnContext, recognizerResult.Properties["luisResult"] as LuisResult, cancellationToken);
            break;
        case "q_sample-qna":
            await ProcessSampleQnAAsync(turnContext, cancellationToken);
            break;
        default:
            _logger.LogInformation($"Dispatch unrecognized intent: {intent}.");
            await turnContext.SendActivityAsync(MessageFactory.Text($"Dispatch unrecognized intent: {intent}."), cancellationToken);
            break;
    }
}

如果您已阅读了本指南,则所有qna步骤都应遵循"q_sample-qna"的情况。要回答您的问题,您可以在此处添加新的case语句来处理“无”意图,然后调用ProcessSampleQnAAsync方法。

随着添加更多QnA对,您将不得不使用this block中记载的refresh命令来更新调度模型,该工具的安装说明为here