У меня проблема с этим. Я пытаюсь создать простой бот с помощью Луиса. Мне удалось создать бот и разместить его на лазурном, я также создал намерение в LUIS и entity. Я создал некоторые высказывания, и эта сторона работает нормально.Microsoft Bot Framework с LUIS
Я тогда создал LuisDialog в C#. Я должен был создать API-интерфейс Cognitive Services в Azure, и я скопировал его на 2 ключа, которые он сгенерировал в моем LuisDialog.
My Dialog выглядит следующим образом:
/// <summary>
/// Entities for the PiiiCK LUIS model.
/// </summary>
public static partial class PiiiCK
{
public const string DefaultCategory = "none";
public const string ChooseCategoryIntent = "Choose category";
}
[Serializable]
public class PiiiCKLuisDialog : LuisDialog<object>
{
/// <summary>
/// Tries to find the category
/// </summary>
/// <param name="result">The Luis result</param>
/// <param name="alarm"></param>
/// <returns></returns>
public string TryFindCategory(LuisResult result)
{
// Variable for the title
EntityRecommendation title;
// If we find our enenty, return it
if (result.TryFindEntity(PiiiCK.ChooseCategoryIntent, out title))
return title.Entity;
// Default fallback
return PiiiCK.DefaultCategory;
}
[LuisIntent("")]
public async Task None(IDialogContext context, LuisResult result)
{
// Create our response
var response = $"Sorry I did not understand";
// Post our response back to the user
await context.PostAsync(response);
// Execute the message recieved delegate
context.Wait(MessageReceived);
}
[LuisIntent("Choose category")]
public async Task ChooseCategory(IDialogContext context, LuisResult result)
{
// Get our category
var category = TryFindCategory(result);
// Create our response
var response = $"Found our entity: { category }";
// Post our response back to the user
await context.PostAsync(response);
// Execute the message recieved delegate
context.Wait(MessageReceived);
}
}
Когда я запустить проект и использовать Bot эмулятор, чтобы мои ответы, которые он всегда хиты нет. Даже если я напишу сообщение точно так же, как произнесение. Теперь я предполагаю, что это потому, что я запутался. Я считаю, что есть еще один шаг после получения ключей от Когнитивная служба аккаунт, чтобы связать его с LUIS конечная точка, знает ли кто-нибудь, что я должен делать дальше?
Update
Я использовал Alarm bot example создать бот, но это путает меня (в основном потому, что я никогда раньше не использовал Autofac), поэтому я перешел на Simple Alarm bot example вместо этого. изменения мне нужно сделать был с Global.asax:
protected void Application_Start() => GlobalConfiguration.Configure(WebApiConfig.Register);
И добавить LuisModel данных аннотаций к PiiiCKLuisDialog так:
[Serializable]
[LuisModel("The Luis App Id", "The microsoft cognitive services subscription key")]
public class PiiiCKLuisDialog : LuisDialog<object>
Когда я запускаю мое приложение, я не получайте ошибок, и когда я использую свой Microsoft Bot Emulator с MicrosoftAppId и Secret, я могу напечатать сообщение, но он по-прежнему делает то же самое, что и раньше. Он всегда идет к None Luis Intent и никогда не выбирайте категорию «Выбрать категорию». Стоит отметить, что LuisResult всегда имеет значение null ...
Любые идеи?
Вы настраиваете ключи? (т. е. [LuisModel («YourModelId», «YourSubscriptionKey»)]) – Lars
Вы уверены, что опубликовали свои идеи и сущности на Luis.ai? Они должны быть опубликованы для работы –