Построение простого обслуживания клиентов BOT, разработали модель LUIS, и она отлично работает, когда заказ №. предоставляется на первом этапе. например. Каков статус моего заказа ABC0898787? , где намерение обнаружено правильно, и ABC0898787 идентифицируется как объект.BOT задать вопрос на втором этапе
Однако необходимо адаптировать личинку иметь разговор следующим образом:
Пользователь: Что статус моего заказа
Bot: пожалуйста, не предоставить номер заказа
Пользователь: (Это ABC0986767) или (ABC0986767)
Бот должен иметь возможность сопоставлять номер сущности и обрабатывать запрос.
код для метода умывания, лучший способ интегрировать второй шаг, не создавая модель LUIS, чтобы принимать отдельные слова как сущность?
[LuisIntent("OrderStatus")]
public async Task OrderStatus(IDialogContext context, LuisResult result)
{
var returnMsg = "You wanted to check the order status";
var orderStatus = "Dispatched";
var deliveryDate = DateTime.Now.AddDays(3);
var entities = new List<EntityRecommendation>(result.Entities);
if(entities.Any((entity)=> entity.Type == "Order"))
{
var orderEntity = entities.Where((entity) => entity.Type == "Order").FirstOrDefault();
var resolutionStr = orderEntity.Entity;
if(!string.IsNullOrEmpty(resolutionStr))
{
returnMsg = "Your order " + resolutionStr + " is " + orderStatus + " and expected to arrive " + deliveryDate.Humanize();
}
}
await context.PostAsync(returnMsg);
context.Wait(MessageReceived);
}
Пробовал делать это, но если я использую IAwaitable аргумент, контекст.Wait выдает ошибку компиляции. Если я пользователь IAwaitable , он компилируется отлично. но окончательное поведение НЕ правильно. –
Vikram
в основном, BOT должен предложить пользователю предоставить заказ №. – Vikram
в основном, бот должен запросить у пользователя ссылку no (которая сопоставляется с сущностью в моей модели LUIS), и она должна использовать этот единственный ввод слова с высказыванием раньше, и LUIS должен определить объект для него. Не уверен, если это объясняет это достаточно хорошо – Vikram