2016-10-31 1 views
1

나는 LuisDialog을 사용하고 있으며, LuisResult을 사용하여 작업, 매개 변수를 감지하고 사용자에게 누락 된 매개 변수를 묻는 방법을 알고 싶습니다. LuisResult에는 이미 조치 및 매개 변수가 들어 있지만, 사용자에게 프롬프트를 표시하는 가장 좋은 방법은 무엇인지 알지 못하며, contextId을 사용하여 LUIS로 정보를 보내는 방법을 알지 못합니다. 나는이 주제에 관한 예제를 BotBuilder SDK 또는 웹 전반에서 찾을 수 없었습니다.LUIS 동작을 내 봇에 통합하여 사용자에게 자세한 정보를 묻는 방법은 무엇입니까?

답변

1

내 거친 접근 방식이 될 것입니다. 예를 들어, LuisResult의 일부 엔티티가 필요합니다. 누락 된 경우 사용자에게 메시지를 표시하려고합니다.

먼저 누락 된 항목을 확인합니다. 누락 된 것이 있으면 사용자에게 프롬프트하고 새 데이터를 처리 할 다른 방법으로 응답을 리디렉션하십시오. 이미받은 LuisResult는 먼저 ConversationData에 저장해야합니다.

 var requiredEntities = new List<string>() 
     { 
      "builtin.places.place_name", 
      "builtin.places.place_type" 
     }; 
     string askForMore = null; 
     foreach(var entity in requiredEntities) 
     { 
      EntityRecommendation temp; 
      var found = result.TryFindEntity(entity, temp); 
      if (!found) 
      { 
       //Prompt the user for more information 
       askForMore = entity; 
      } 
     } 
     if (askForMore != null) 
     { 
      //TODO: store values from existing LuisResult for later use 
      //For example, use ConversationData for storage. 

      context.PostAsync("Please enter value for entity " + askForMore); 
      context.Wait(AdditionalUserInputReceived); 
     } 
     else 
     { 
      //do normal stuff 
     } 

이것은 미만 유연성

+0

안녕과 함께하는 LuisDialogFormFlow를 결합하여 좀 더 자동화가있을 수 가정, 완전 수동 방법입니다! 그래서, 제가 지금 이런 상황을 처리하고있는 방법입니다. 이 코드는 LUIS 작업 (프롬프트 및 매개 변수)을 완전히 무시하기 때문에 LUIS 동작을 직접 구현하는 방법이 있는지 궁금합니다. 나는이 코드가 일을 완수한다는 것을 안다. (고마워.)하지만 LUIS가 제공 한 프롬프트와 매개 변수 이름을 사용할 수있는 더 나은 대안이 있는지 궁금하다. – artie

+0

Luis Action을 사용하려면 Luis Preview 모드를 사용하십시오. – Satheesh