Общие сведения о LUIS
Для вашей модели LUIS вам понадобятся ваши намерения - BookFlight
и None
.В соответствии с вашим BookFlight
намерением у вас будет Utterances
- все фразы, которые вы хотите иметь, чтобы вызвать намерение BookFlight
.
MyLuisApp
--BookFlight
----I want to book a flight
----Book a flight
----I need a plane ticket
----etc
--None
----Utterances that don't match any of your intents
Ни одно намерение ОЧЕНЬ важно в соответствии с эта документация .
Добавление этой функциональности к новому боту или шаблону основного бота
Существует несколько различных примеров того, как вы могли быдостичь этого, но лучший способ - использовать диалоги.То, что вы хотите, это Waterfall Dialog .Внутри этого диалога вы можете определить каждую ступень в водопаде, например, «Запрашивать пункт назначения», «Запрашивать дату и т. Д.» link1 и link2 , чтобы узнать намерения пользователей согласно этому примеру .Если задано значение BookFlight
, то вы должны запустить BookFlightDialog, который содержит водопад книжного полета.
...
// Check dispatch result
var dispatchResult = await cognitiveModels.DispatchService.RecognizeAsync<DispatchLuis>(dc.Context, CancellationToken.None);
var intent = dispatchResult.TopIntent().intent;
if (intent == "BookFlight")
{
// Start BookFlightDialog
await dc.BeginDialogAsync(nameof(BookFlightDialog));
}
Общие сведения о диалоге водопада
You 'd определите ваши шаги следующим образом:
var waterfallSteps = new WaterfallStep[]
{
AskDestinationAsync,
AskDepartureDateAsync,
ConfirmStepAsync,
FinishDialogAsync,
};
Для вашего сценария фактически существует пример, который уже был создан с намерением BookFlight здесь .Полное руководство о том, как получить эту настройку и как работать с официальной документацией .Таким образом, вы можете проверить, как все работает, а затем изменить его, как вам нужно.
Другие интересные ссылки:
Материал Virtual Assistant
Как только вы поймете, как работает выше, вы сможете изменить шаблон Virtual Assistant для обработкиНамерение BookFlight, выполнив следующие действия:
- Добавление намерения BookFlight к существующему приложению LUIS DISPATCH , которое подключено к вашему шаблону VA.
- Добавление высказываний внамерение BookFlight.
- Сохраните и обучите свое приложение LUIS.
- Опубликуйте свое приложение LUIS.
- Запуск сценария update_cognitive_models.ps1 согласно шагу 3 из инструкций здесь , которые внесут изменения (ваше новое намерение и высказывания).
.\Deployment\Scripts\update_cognitive_models.ps1 -RemoteToLocal
- ПРИМЕЧАНИЕ: Эта команда должна быть запущена с использованием PowerShell Core и из корневого каталога вашего проекта, т. Е. Внутри вашего виртуальногоПапка помощника.
Результатом выполнения этого сценария должна быть группа файлов, созданных локально, а также файл DispatchLuis.cs
, обновляемый довключите ваше новое намерение.Вам также следует проверить созданный файл Summary.html
, чтобы убедиться, что ваше новое намерение там.Теперь вам придется обновить код VA, чтобы он действительно что-то делал при срабатывании вашего нового намерения - добавьте еще один оператор if / case в метод RouteAsync
файла MainDialog.cs
- см. здесь для примера.
Примерно так:
MainDialog.cs
protected override async Task RouteAsync(DialogContext dc, CancellationToken cancellationToken = default(CancellationToken))
{
// Call to dispatch to get intent
if (intent == DispatchLuis.Intent.bookflight)
{
// Start BookFlightDialog
await dc.BeginDialogAsync(nameof(BookFlightDialog));
}
...
}