다이얼로그 플로우(Dialog Flow) 엔티티(Entity)로 단어 분류하여 응답하기
다이얼로그 플로우(Dialog Flow) 엔티티(Entity)로 단어 분류하여 응답하기
나동빈
지난 시간까지 간단히 사용자가 챗봇과 연속적으로 대화를 나눌 수 있도록 연계형 챗봇을 구현하는 시간을 가져보았습니다. 다만 현재까지 다룬 내용으로는 챗봇은 항상 동일한 문장만을 말하게 된다는 단점이 있습니다.
이번 시간에는 엔티티(Entity)로 단어를 분류하여 처리하는 방법을 알아보고자 합니다.
지난 시간에 이어서 '강의 신청' 인텐트에 새로운 연계형 인텐트를 추가해주겠습니다.
Custom 모드로 생성하여 자유롭게 인텐트를 처리해봅시다.
저는 위와 같이 사용자가 실질적으로 듣고자 하는 강의 이름을 입력해서 신청을 시도한다고 가정하여 입력 데이터를 구성했습니다.
이제 엔티티를 생성해봅시다. 'HTML' 부분을 드래그하면 원하는 엔티티 그룹을 설정할 수 있습니다. 새롭게 엔티티를 생성해봅시다.
저는 강의 엔티티라는 의미로 이름을 Lecture라고 지었습니다.
이후에 다시 인텐트 화면으로 돌아오면 드래그 했을 때 새롭게 '@Lecture' 엔티티가 보입니다.
Lecture 엔티티로 설정해주면 위와 같은 화면으로 변경됩니다.
강의 종류로는 HTML뿐만 아니라 JSP 등이 있으므로 JSP도 추가해주었습니다.
이제 다시 인텐트 화면에서 모든 강의에 대해서 Lecture 엔티티로 설정해주면 알아서 강의 이름으로 분류가 진행됩니다.
이후에 응답(Response)에서 사용자가 입력한 데이터를 활용하기 위해서 '$Lecture'라는 키워드를 이용하여 응답을 구성합니다.
테스트를 진행하면 사용자가 입력한 강의 이름을 챗봇이 그대로 사용하는 것을 알 수 있습니다.
이제 최종적으로 강의 수강 여부를 물을 수 있도록 하나의 연계형 인텐트를 더 추가해주겠습니다.
새롭게 추가된 인텐트에 들어가 봅시다.
저는 위와 같이 동의의 의미를 담는 여러 개의 문장들을 입력 데이터로 넣어주었습니다.
또한 문맥(Context)를 보시면 CourseReservation-custom-2-followup에서 입력 값이 넘어온다고 쓰인 것을 알 수 있습니다.
응답(Response) 문장으로는 위와 같이 넘어온 데이터 중에서 Lecture 단어를 사용하겠다고 적어주시면 됩니다.
결과적으로 위와 같이 강의 신청 확인까지 챗봇을 통해 안정적으로 이루어지게 된 것을 알 수 있습니다.
'다이얼로그 플로우(Dialog Flow)' 카테고리의 다른 글
| 다이얼로그 플로우(Dialog Flow)와 플라스크(Flask) 연동하기 (6) | 2018.08.29 |
|---|---|
| 다이얼로그 플로우(Dialog Flow)에 엑셀 파일(csv) 등의 데이터를 한 번에 넣는 방법 (8) | 2018.08.23 |
| 다이얼로그 플로우(Dialog Flow) Follow-up Intent를 이용한 연계형 챗봇 만들기 (0) | 2018.08.19 |
| 다이얼로그 플로우(Dialog Flow) Intent를 생성해 단순 질의응답 챗봇 만들기 (0) | 2018.08.19 |
| 다이얼로그 플로우(Dialog Flow) 개요 및 챗봇 개발 시작하기 (0) | 2018.08.18 |
다이얼로그 플로우(Dialog Flow) Follow-up Intent를 이용한 연계형 챗봇 만들기
나동빈
지난 시간에는 다이얼로그 플로우(Dialog Flow)에서 직접 Intent를 생성해 단순한 형태의 질의응답 챗봇을 만들어 보았습니다. 이번 시간에는 Follow-up Intent를 이용해 맥락 속에서 연속적인 질의 응답을 수행하는 연계형 챗봇을 만들어 보도록 하겠습니다.
실제로 강의를 예약하는 등 사용자로부터 다양한 정보를 연속적으로 받아야 할 때는 이러한 연계적인(Follow-up) 구성이 이루어져야 합니다.
지난 시간에 만든 강의 예약(Course Reservation) 인텐트에서 'Add follow-up intent' 링크를 클릭합니다.
이후에 커스텀(Custom) 모드로 생성해줍니다.
새롭게 부가적인 인텐트가 생성된 것을 알 수 있습니다. 그 안에 들어갈 수 있도록 합니다.
그러면 맥락(Context) 영역에서 입력(Input) 값을 통해 이전 인텐트와 연결된 것을 확인할 수 있습니다.
이제 위와 같이 사용자가 강의 이름은 아직 정하지 못한 상황일 때를 가정하고 입력 데이터를 넣어주었습니다.
이제 간단하게 서버 측의 응답(Response) 데이터도 넣어준 뒤에 저장(Save) 해줍니다.
이제 작성된 챗봇 프로그램의 동작을 확인하기 위해 통합(Integration) 탭에 들어가 봅시다.
웹 환경에서 확인할 수 있도록 웹 데모(Web Demo)를 활성화 해줄 수 있습니다.
이후에 구글에서 고유한 챗봇 URL을 제공해줍니다. 이를 복사하여 브라우저에서 접속하면 테스트를 수행할 수 있습니다.
위와 같이 '강의 신청를 하고 싶은 상태'에서 '하지만 강의 이름은 결정하지 못한 상태'로 자연스럽게 질의응답이 연계되는 것을 확인할 수 있습니다. 이것은 2단계까지 연계를 수행한 것이며 더욱 깊고 복잡하게 이어질 수 있도록 챗봇을 설계할 수도 있다는 점도 기억해주세요.
'다이얼로그 플로우(Dialog Flow)' 카테고리의 다른 글
| 다이얼로그 플로우(Dialog Flow)와 플라스크(Flask) 연동하기 (6) | 2018.08.29 |
|---|---|
| 다이얼로그 플로우(Dialog Flow)에 엑셀 파일(csv) 등의 데이터를 한 번에 넣는 방법 (8) | 2018.08.23 |
| 다이얼로그 플로우(Dialog Flow) 엔티티(Entity)로 단어 분류하여 응답하기 (0) | 2018.08.19 |
| 다이얼로그 플로우(Dialog Flow) Intent를 생성해 단순 질의응답 챗봇 만들기 (0) | 2018.08.19 |
| 다이얼로그 플로우(Dialog Flow) 개요 및 챗봇 개발 시작하기 (0) | 2018.08.18 |
다이얼로그 플로우(Dialog Flow) Intent를 생성해 단순 질의응답 챗봇 만들기
다이얼로그 플로우(Dialog Flow) Intent를 생성해 단순 질의응답 챗봇 만들기
나동빈
새롭게 에이전트(Agent)를 생성하면 마치 하나의 프로젝트가 생성된 것처럼 기본적으로 'Default Welcome Intent'가 생성된다고 했습니다. 다만 우리가 직접 챗봇 모듈을 개발하기 위해서는 인텐트(Intent)를 새롭게 만들어주어야 합니다.
저는 강의 예약(Course Reservation) 이라는 이름으로 인텐트를 생성한 뒤에 학습 문구(Training Phrases)를 하나 추가해주겠습니다.
학습 문구는 실질적으로 사용자가 입력할 문장의 예시입니다. 많은 데이터를 넣어주면 자동으로 다이얼로그 플로우가 문장을 학습하여 우리가 정확히 입력한 값이 아니라고 하더라도 사용자의 의도를 파악해줍니다.
저는 위와 같이 강의 예약을 자동으로 해주는 챗봇이라는 컨셉으로 '강의 등록' 의도(Intent)를 밝히는 문장을 여러 개 넣어보았습니다.
이제 사용자의 입력에 대한 응답 예시 데이터를 넣어주어야 합니다.
저는 위와 같이 3개의 응답(Response) 문장을 넣어주고 저장(Save)했습니다.
이제 테스트를 해보면 챗봇이 알아서 사용자의 의도를 파악하여 단순한 형태의 질의응답 챗봇이 만들어진 것을 알 수 있습니다.
'다이얼로그 플로우(Dialog Flow)' 카테고리의 다른 글
| 다이얼로그 플로우(Dialog Flow)와 플라스크(Flask) 연동하기 (6) | 2018.08.29 |
|---|---|
| 다이얼로그 플로우(Dialog Flow)에 엑셀 파일(csv) 등의 데이터를 한 번에 넣는 방법 (8) | 2018.08.23 |
| 다이얼로그 플로우(Dialog Flow) 엔티티(Entity)로 단어 분류하여 응답하기 (0) | 2018.08.19 |
| 다이얼로그 플로우(Dialog Flow) Follow-up Intent를 이용한 연계형 챗봇 만들기 (0) | 2018.08.19 |
| 다이얼로그 플로우(Dialog Flow) 개요 및 챗봇 개발 시작하기 (0) | 2018.08.18 |
