간단한 고객 서비스 BOT을 구축하고 LUIS 모델을 설계했으며 주문 번호가 없을 때 큰 효과를 발휘합니다. 첫 번째 단계 자체에서 제공됩니다. 예를 들면. 내 주문 ABC0898787의 상태가 뭐죠? 인 텐트가 올바르게 감지되고 ABC0898787이 엔티티로 식별됩니다.두 번째 단계에서 엔티티에게 물어 보려는 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 인수를 사용하면 context.Wait에서 컴파일 오류가 발생합니다. 만약 내가 사용자 IAwaitable 그것은 잘 컴파일합니다. 그러나 마지막 행동은 정확하지 않습니다. –
Vikram
기본적으로 BOT는 사용자에게 주문 번호를 제공하라는 메시지를 표시해야합니다. – Vikram
기본적으로 봇은 사용자에게 참조 번호 (내 LUIS 모델의 엔티티에 매핑 됨)를 물어보아야하며 이전에이 단일 단어 입력을 사용해야하며 LUIS는 엔티티를 동일하게 검색해야합니다. 그게 충분히 설명하는 경우 잘 모르겠어요 – Vikram