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

应该如何在机器人框架版本 4 中编写版本 3 机器人代码中的 LUIS 意图方法?

应该如何在机器人框架版本 4 中编写版本 3 机器人代码中的 LUIS 意图方法?

C#
守候你守候我 2022-12-24 10:41:58
我正在尝试按照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 获取意图的步骤:

  1. 首先,您需要在 bot 框架中使用密钥将 LUIS 服务注入到服务中。

  2. 使用以下代码获取识别器结果对象

var luisResults = await services.LuisServices[LuisKey].RecognizeAsync(turnContext, default(CancellationToken));

       LUIS 密钥是注入 LUIS 服务时使用的密钥。

  1. 这是使用 RecognizerResult 对象获取意图的方法。

luisResults.GetTopIntent(luisThresholdScore).intent;


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

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