2017-01-19 1 views
0

LUISIntent이 감지 된 일부 발화문을 만들었습니다. 예를 들어 응용 프로그램과 관련된 사용자 문제를 감지하기 위해 봇을 만들려고합니다. 즉, 3 가지 다른 Entities을 설정했습니다. 따라서 사용자가 Unable to Open Android을 입력하면 Find_IssueEntities을 1로 설정했습니다. Product 2. Issue 3. Error. 그러나 Unable to Open Android에는 오류 코드가 없습니다. 나는 단지 얻고있다 2 entitiesProduct & Issue. 지금 아무 값도 저장하지 않을 경우 Error 값을 얻고 싶습니다. 다음은 지금까지 BotFramework : 하나의 인 텐트에 대해 여러 엔터티를 처리하는 방법은 무엇입니까?

[LuisIntent("Find_Issue")] 
    public async Task getIssue(IDialogContext context, LuisResult result) 
    { 
     EntityRecommendation getProduct; 
     EntityRecommendation getIssue; 
     EntityRecommendation getError; 
     if(result.TryFindEntity("Product",out getProduct)) 
     { 
      chatdetails.issuedetails.product = getProduct.Entity; 

     } 
     if (result.TryFindEntity("Issue", out getIssue)) 
     { 
      chatdetails.issuedetails.issue = getIssue.Entity; 
     } 
     if (result.TryFindEntity("Error", out getError)) 
     { 
      chatdetails.issuedetails.error = getError.Entity; 
     } 

    } 

chatdetails.issuedetails

내가 더 이상 진행하는 방법을 받고 있지 않다 Product, Issue, Error 의 값을 저장하기 위해 만든 클래스 인 Task 코드입니다.

+0

루이스 에이전트는 더 많은 교육이 필요합니다. –

+0

사용자의 진술에 '오류'와 관련된 항목이 없으면 가져올 수 없지만 '오류 항목'을 찾지 못하면 사용자에게 '오류'관련 질문을해야합니다. –

+0

@saikatmukherjee Train'Find Intent'를 더 훈련 시키십시오. 엔티티가 없다면 formflow를 사용하여 사용자로부터 'error' 관련 질문에 대한 답을 얻을 수 있습니다. –

답변

0

LUIS에서 의도를 정의 할 때 작업 매개 변수를 정의 할 수도 있습니다. 동작 매개 변수는 매개 변수 이름, 엔터티 유형, 프롬프트 및 필요한지 여부로 구성됩니다. BotFramework Nuget 패키지의 최신 버전을 사용하는 경우 다음

enter image description here

, 당신의 LuisDialog가 자동으로 (오류 개체와 시나리오 등) 필수 매개 변수가 누락 된 것을 감지하고 자동으로에 대한 프롬프트를 발사합니다 Action 매개 변수에 정의 된 메시지를 사용하는 매개 변수

조치 매개 변수 주위의이 작업이 기술적으로 어떻게 작동하는지에 대해서는 this thread을 확인하십시오.