Я пытаюсь создать бот с помощью LUIS, но это намного сложнее, чем я думал. До сих пор мне удалось создать мое приложение Луисом и создать Intent и Entity и я создал несколько Высказывания, которые, кажется, работает хорошо.Microsoft Bot Framework, LUIS и параметры действия
Затем я создал своего бота и подключил его к Луису. Когда я тестирую своего бота, он работает так, как ожидалось. Теперь, для забавной части. Я хочу обрабатывать параметры. Луис я добавил действие к моему Intent:
Как вы можете видеть, что я добавил строку. Мой код в моем боте в настоящее время выглядит следующим образом:
/// <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.Category, out title))
return title.Entity;
// Default fallback
return null;
}
[LuisIntent("Choose category")]
public async Task ChooseCategory(IDialogContext context, LuisResult result)
{
// Get our category
var category = TryFindCategory(result);
var response = "The category you have chosen is not in the system just yet.";
switch (category)
{
case "camera":
response = $"You need help buying a { category }, is this correct?";
this.started = true;
break;
default:
if (!string.IsNullOrEmpty(category)) response = $"Sorry, PiiiCK does not deal with { category.Pluralise() } just yet.";
break;
}
// Post our response back to the user
await context.PostAsync(response);
// Execute the message recieved delegate
context.Wait(MessageReceived);
}
Я думаю, что вы можете догадаться, куда я иду с этим. Если пользователь набирает Помогите мне купить фотоаппарат, он дойдет до Выберите категорию Назначение и будут иметь правильное значение Объект выбран. Но если они набирают Помогите мне купить, он по-прежнему подходит к правильному намерению, но у него не будет выбранного Объект. Я бы хотел, чтобы мой бот увидел это и использовал текст в . Запросить Я создал в LUIS, и когда пользователь выбирает свой объект Я хочу, чтобы он вернулся к LUIS с этим параметром.
Я понятия не имею, как это сделать, и я не могу найти учебники по этому вопросу. Любая помощь была бы оценена (даже ссылки!)
Вы можете добавить изображение своей модели LUIS так, чтобы мы понимали намерение/предложение у вас?Что делает TryFindCategory? –
В настоящее время существует только 1 намерение (выберите категорию) и 1 объект (категория). TryFindCategory просто извлечение из https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Samples/AlarmBot/Dialogs/AlarmLuisDialog.cs строки 60, где вместо логического значения я просто возвращаю Entity или null. – r3plica