我正在尝试按照Microsoft Docs 中的这篇文章将我们的版本 3 代码迁移到版本 4。但是,我不确定如何重写 Luis 对话框。必须做什么?我在 onturnasync 中添加了以下代码,现在不确定如何重写 AfterFAQ resume 方法。请帮助我重写这些现有的 Luis 方法: //The LUIS dialog service call the back the method if the conversation is part of Greeting intent [LuisIntent("Greetings")] public async Task Greetings(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result) { needMoreInformation = false; qnaInvalidMessageCount = 0; var messageToForward = await activity; string[] supportList = { "HELP", "FEEDBACK", "SUPPORT", "ESCALATE", "AGENT" }; string qnaAnswer; if (messageToForward.Text == null || supportList.Any(x => x == messageToForward.Text.ToUpper())) { await context.PostAsync("Please reach out to ..."); context.Wait(MessageReceived); } else if (GreetingColl.TryGetValue(messageToForward.Text.Trim().ToLower(), out qnaAnswer)) { await context.PostAsync(qnaAnswer); context.Wait(MessageReceived); } else { await context.Forward(new QnAGreetingsDialog(), AfterFAQDialog, messageToForward, CancellationToken.None); } }修改代码: public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken)) { if (turnContext.Activity.Type == ActivityTypes.Message) { ... var luisResults = await botServices.LuisServices[LuisKey].RecognizeAsync(turnContext, cancellationToken); var topScoringIntent = luisResults?.GetTopScoringIntent(); var topIntent = topScoringIntent.Value.intent;
1 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
如果您的问题是关于 Bot Framework core v4,PFB 获取意图的步骤:
首先,您需要在 bot 框架中使用密钥将 LUIS 服务注入到服务中。
使用以下代码获取识别器结果对象
var luisResults = await services.LuisServices[LuisKey].RecognizeAsync(turnContext, default(CancellationToken));
LUIS 密钥是注入 LUIS 服务时使用的密钥。
这是使用 RecognizerResult 对象获取意图的方法。
luisResults.GetTopIntent(luisThresholdScore).intent;
- 1 回答
- 0 关注
- 70 浏览
添加回答
举报
0/150
提交
取消