2017-01-30 1 views
0

우리는 Microsoft bot 프레임 워크를 사용하여 라이브러리 봇을 개발하고 있습니다.동일한 답변으로 Microsoft Bot-Looping 입력이 다릅니다

우리는 그것을 '자바'는 실체임을 이해하고, 기타 세부 자바 책을 제공

Intent : BookSearch 
Entiry : BookName, BookAuthor 

내가 검색

"나는 자바 책 필요"가 있습니다.

내 질문은 자바 책 세부 정보를받은 후에 책을 발행하고 싶습니다. 다시 "Issue book book Java"라고 물으면 여기서 충돌하고 자바 책 세부 정보를 다시 표시합니다. 루프에 들어가.

이 시나리오에서 도움을주세요. 질문에서 다른 상황을 어떻게 결정할 수 있습니까?

코드 : 우리가 요청할 때 여기

[LuisIntent("BookSearch")] 
    public async Task BookSearch(IDialogContext context, LuisResult result) 
    { 
     if (result.Entities.Any()) 
     { 
      DBConnect dbConnect = new DBConnect(); 
      string combindedString = string.Empty; 
      string mysqlQuery = string.Empty; 

      foreach (var item in result.Entities) 
      { 
       switch (item.Type.ToString()) 
       { 
        case "BookAuthor": 

         break; 
        case "BookName": 

         break; 
        case "BookIssue": 

         break; 
        default:       

         break; 
       } 
      } 

     } 
     else 
     { 
      await context.PostAsync("Which book are you searching."); 
      context.Wait(MessageReceived); 
     } 

    } 

은 bookname과 BookIssue이 단체는, 그래서 =>이 책의 세부 사항을 제공하기 위해 bookname과 엔티티로 가야한다 "나는 자바 책이 필요합니다." "Issue me java book"=> 책 발행을 처리하기 위해 BookIssue 엔티티에 들어가야합니다. 사전

+0

코드 예제가 도움이 될 수 있습니다. – Svekke

+0

@Svekke, 나는 코드를 추가 할 질문을 편집했다 –

+0

@PareshBijarane 책 발행이 일어날 예정인 인 텐트에 코드를 게시 할 수 있습니까? – artie

답변

0

BookIssue에서

덕분에 자신의 의도 & 방법이어야한다. 귀하의 코드에서 엔티티로 BookIssue을 치료하는 것으로 보입니다.

BookSearch에 대해 수행 한 작업을 BookIssue 방법에서 원하는 발언과 논리로 수행하십시오.

다른 문자를 아직 정의하지 않았기 때문에 BookSearch 의도가 "멈추었습니다."그리고 LUIS는 검색 결과와 일치합니다.

그러나이 응용 프로그램의 경우 FormFlow을 사용하는 것이 좋습니다.

+0

감사합니다 Anna Zietlow FormFlow를 사용하면 책 수가 50 개 또는 100 개 이상인 경우 어떻게 책을 표시 할 수 있습니까? 실시간 시스템에서 데이터를 가져오고 Google 검색에 너무 많은 책이있을 수 있습니다. –

+0

죄송합니다. FormFlow가 BookIssue 인 텐트에 더 적합하다고 생각합니다. 귀하의 검색은 너무 복잡하게 들립니다. –