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