为了账号安全,请及时绑定邮箱和手机立即绑定

LUIS 中具有多个 QnA Maker 知识库和意图的聊天机器人 - sdk v4 C#

LUIS 中具有多个 QnA Maker 知识库和意图的聊天机器人 - sdk v4 C#

C#
隔江千里 2023-09-16 17:46:29
我正在开发一个机器人,目前通过调度工具将 1 KB 映射到 LUIS 中的一个 Intent。我按照这篇文章创建了调度。我想在同一个 QnA 服务中创建更多知识库,并通过创建调度文件将它们映射到多个意图。我关注的 Microsoft 文章使用Caseswitch 语句来确定多个意图。这对我来说似乎非常依赖代码。问题是:如果我通过调度文件创建多个意图和知识库,是否有办法摆脱这些 case switch 语句?或者我必须为每个知识库创建多个 case switch 语句,以便机器人映射到正确的知识库?我有以下代码: 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":            case "q_CivicSampleFAQ":                await ProcessSampleQnAAsync(turnContext, cancellationToken);                break;            default:                _logger.LogInformation($"Dispatch unrecognized intent: {intent}.");              // await turnContext.SendActivityAsync(MessageFactory.Text($"Dispatch unrecognized intent: {intent}."), cancellationToken);                break;        }    }基本上情况q_CivicSampleFAQ决定处理的意图应该得到 QnA Maker KB 的回复。如果我有多个 KB,我可以创建多个案例,但这会限制我每次拥有新 KB 时或即使旧 KB 的名称发生更改时也必须更改代码。有什么想法如何绕过这个吗?
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

Microsoft 提供了一个利用认知服务 API 的 QnA Maker 软件包,您可以从那里下载并存储所有 KB、其 ID 和数据的列表。

https://www.nuget.org/packages/Microsoft.Bot.Builder.AI.QnA/

https://westus.dev.cognitive.microsoft.com/docs/services/5a93fcf85b4ccd136866eb37/operations/knowledgebases_getknowledgebasesforuser

除此之外,您还必须创建自己的意图与您想要定位的知识库之间的关系图。不过,一旦完成此操作,接收意图并根据您的映射分派到适当的知识库就变得很简单。


查看完整回答
反对 回复 2023-09-16
  • 1 回答
  • 0 关注
  • 48 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信