Я создал очень простой бот, используя конструктор ботов 3.15.0.Я определил и обучил LUIS с несколькими намерениями и т. Д. Я опубликовал в качестве постановки.
Результатом этого является набор ключей.Я поместил первый ключ в качестве первого параметра в атрибут LuisModelAttribute, второй ключ в качестве второго параметра, а затем добавил домен: westus.api.cognitive.microsoft.com и Staging = true
[LuisModel("{the first key listed on the LUIS publish page}", "the second key listed on the LUIS publish page",
domain: "eastus.api.cognitive.microsoft.com", Staging = true)]
IУ меня есть следующий код в RootDialog моего бота
private async Task MessageReceivedAsync (IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
await context.Forward(new LuisRepeating(), ResumeAfterLuisDialog, activity, CancellationToken.None);
} /* method RootDiaglog MessageReceivedAsync */
private async Task ResumeAfterLuisDialog (IDialogContext context, IAwaitable<object> result)
{
context.Wait(MessageReceivedAsync);
}
Когда я пытаюсь проверить это с помощью эмулятора бота, соединение с ботом работает.Во время первого поста точка останова в context.Wait в ResumeAfterLuisDialog показывает, что в результате произошел сбой с содержимым {"; None"}, и ни одно из моих намерений Luis (включая None и blank) не вызывается.
ОБНОВЛЕНИЕ
Как оказалось, код "работал" с или без {} вокруг идентификатора приложения.Реальная проблема заключается в том, что код Luis Dialog в SDK генерирует InvalidIntentHandlerException в строке 416 LuisDialog, но текущий код на GitHub выполняет выброс в строке 452 (это было изменено при выпуске 634).
Длядля будущих людей «; None» - это «сообщение», передаваемое исключению InvalidIntentHandlerException, которое является;строка с разделителями из намерений из атрибута LuisIntent для ошибочного метода.Имя метода в исключении - это имя метода, к которому бот-сборщик попытался отправить.Он выбирает правильный метод и т. Д., Так что теперь мои задания 1) - Выясните, почему я не использую текущий код 2) - Почему объявление моего метода неверно