안경잡이개발자

728x90
반응형

다이얼로그 플로우(Dialog Flow) 엔티티(Entity)로 단어 분류하여 응답하기

나동빈


지난 시간까지 간단히 사용자가 챗봇과 연속적으로 대화를 나눌 수 있도록 연계형 챗봇을 구현하는 시간을 가져보았습니다. 다만 현재까지 다룬 내용으로는 챗봇은 항상 동일한 문장만을 말하게 된다는 단점이 있습니다.


이번 시간에는 엔티티(Entity)단어를 분류하여 처리하는 방법을 알아보고자 합니다.



지난 시간에 이어서 '강의 신청' 인텐트에 새로운 연계형 인텐트를 추가해주겠습니다.



Custom 모드로 생성하여 자유롭게 인텐트를 처리해봅시다.



저는 위와 같이 사용자가 실질적으로 듣고자 하는 강의 이름을 입력해서 신청을 시도한다고 가정하여 입력 데이터를 구성했습니다.



이제 엔티티를 생성해봅시다. 'HTML' 부분을 드래그하면 원하는 엔티티 그룹을 설정할 수 있습니다. 새롭게 엔티티를 생성해봅시다.



저는 강의 엔티티라는 의미로 이름을 Lecture라고 지었습니다.



이후에 다시 인텐트 화면으로 돌아오면 드래그 했을 때 새롭게 '@Lecture' 엔티티가 보입니다.



Lecture 엔티티로 설정해주면 위와 같은 화면으로 변경됩니다.



강의 종류로는 HTML뿐만 아니라 JSP 등이 있으므로 JSP도 추가해주었습니다.



이제 다시 인텐트 화면에서 모든 강의에 대해서 Lecture 엔티티로 설정해주면 알아서 강의 이름으로 분류가 진행됩니다.



이후에 응답(Response)에서 사용자가 입력한 데이터를 활용하기 위해서 '$Lecture'라는 키워드를 이용하여 응답을 구성합니다.



테스트를 진행하면 사용자가 입력한 강의 이름을 챗봇이 그대로 사용하는 것을 알 수 있습니다.



이제 최종적으로 강의 수강 여부를 물을 수 있도록 하나의 연계형 인텐트를 더 추가해주겠습니다.



새롭게 추가된 인텐트에 들어가 봅시다.



저는 위와 같이 동의의 의미를 담는 여러 개의 문장들을 입력 데이터로 넣어주었습니다.



또한 문맥(Context)를 보시면 CourseReservation-custom-2-followup에서 입력 값이 넘어온다고 쓰인 것을 알 수 있습니다.



응답(Response) 문장으로는 위와 같이 넘어온 데이터 중에서 Lecture 단어를 사용하겠다고 적어주시면 됩니다.



결과적으로 위와 같이 강의 신청 확인까지 챗봇을 통해 안정적으로 이루어지게 된 것을 알 수 있습니다.


728x90
반응형