Перечисление объектов LUIS - PullRequest
1 голос
/ 29 февраля 2020

У меня есть модель 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);

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Я вроде исправил это. Были две проблемы.

  1. Когда я строил параметры распознавателя, я не упомянул параметр "IncludeAPIResults = true"

  2. Однако он все еще не работал и luisResult всегда возвращал ноль при использовании LuisRecognizerOptionsV3. Я наконец прибег к использованию LuisRecognizerOptionsV2, который сработал. Я, вероятно, сообщу об ошибке по этому поводу.

0 голосов
/ 05 марта 2020

Как насчет того, чтобы изменить

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

на

var luisResult = result;

, а затем получить доступ к свойству Entities класса RecognizerResult .

Вы можете даже для go создать переменную luisResult и просто использовать result.Entities.

...