枚举LUIS实体

问题描述 投票:1回答:2

我有一个LUIS模型,正在尝试使用以下代码枚举我的实体。

执行第二行时出现以下错误。

“字典中不存在给定的键'luisResult'”

最近是否更改了LUIS的实施?在LUIS中枚举所有实体的替代方法是什么?

var result = await _botServices.Dispatch.RecognizeAsync(stepContext.Context, cancellationToken);
 var luisResult = result.Properties["luisResult"] as LuisResult;
 var entities = luisResult.Entities;
 foreach (var entity in entities)
 {
   if (Common.BugTypes.Any(s => s.Equals(entity.Entity, 
   StringComparison.OrdinalIgnoreCase)))
   {
     await stepContext.Context.SendActivityAsync(
     MessageFactory.Text(String.Format("Yes! {0} is a Bug Type!", 
     entity.Entity)), cancellationToken);
   }
   else
   {
     await stepContext.Context.SendActivityAsync(
     MessageFactory.Text(String.Format("No! {0} is not a Bug Type!", entity.Entity)), cancellationToken);
   }
 }

   return await stepContext.NextAsync(null, cancellationToken);
botframework luis
2个回答
0
投票

您如何更改

var luisResult = result.Properties["luisResult"] as LuisResult;

to

var luisResult = result;

然后访问Entities类的RecognizerResult属性。

您甚至可以放弃创建luisResult变量,而只使用result.Entities


0
投票

我已经解决了这个问题。有两个问题。

  1. 当我构建识别器选项时,我没有提到参数“ IncludeAPIResults = true”

  2. 但是仍然不起作用,使用LuisRecognizerOptionsV3时luisResult始终返回null。我最终求助于使用有效的LuisRecognizerOptionsV2。我可能会为此提交一个错误。

© www.soinside.com 2019 - 2024. All rights reserved.