챗봇 설계
2023-01-07 11:14
01. 시나리오 분석
시나리오 흐름이 텍스트로 정의된 경우에, 대화의 흐름이 어떻게 진행되는지 파악하기 어렵습니다.
텍스트로 구성된 시나리오의 흐름을 오픈빌더 구축에 맞게 재배치하고, 블럭이 어떻게 생성되는지 확인 할 수 있도록 다이어그램으로 표시합니다.
단순한 형태일 수록 좋지만, 모든 흐름에 빠진 부분이 없도록 하고, 해당 흐름을 바탕으로 테스트를 진행할 수 있어야 합니다.
02. 주요 설계 요소
블럭의 연결 구조 확인
- ① 블럭의 연결은 사용자 발화, 혹은 UI를 통한 블럭 연결입니다.
- ② 엔티티에 따른 설계 요소를 확인해야 합니다.
- ③ 동적 블럭 생성은 챗봇 서버를 이용합니다.
대화형 시나리오 확인
- ◻ 대화형 시나리오 설계시 예상하지 못한 사용자의 답변에 대해서 준비해야 합니다.
- ◻ 대화형 시나리오는 오픈빌더에서 구현하기 어렵습니다.
- ◻ 대화형 시나리오가 필요하다면, 다이얼로그플로우의 사용을 검토합니다.
오픈빌더에서 사용자 입력 받기
- ◻ 오픈빌더의 경우에 필수파라미터를 이용해서 사용자 입력을 받습니다.
- ◻ 사용자 발화나, 블럭 링크 방식과 다르게 처리해야 합니다.
- ◻ 인터랙션에 제한이 있으며, 해당 제한 사항으로 흐름이 끊어지지 않도록 합니다.
사용자 입력 검증하기
- ◻ 입력 형식이 정해진 경우에는 챗봇 서버를 이용해서 입력 형태를 검증합니다.
- ◻ 모든 내용이 입력된 이후에 검증하게 되면, 처음부터 다시 입력해야 합니다.
- ◻ 잘못된 입력에 대해서 적절한 피드백을 제공합니다.
- ◻ 사용자의 실수가 아닌 다양한 표현방식을 받을 수 있어야 합니다.
챗봇 서버로 데이터 보내기
- ◻ 입력된 데이터는 서버로 전송됩니다.
- ◻ 챗봇 서버에서는 해당 데이터를 이용해서 응답 데이터를 전송합니다.
- ◻ 응답 형식이 아닌 데이터 형식을 전송할 수 있습니다.
03. 블럭 생성
- 설계에 따라 오픈빌더의 블럭을 생성합니다.
- 구조적인 문제 발생시 설계를 변경합니다.
- 오픈빌더에서 구현하기 어려운 시나리오는 다이얼로그플로우를 사용합니다.
- 오픈빌더는 컨텍스트 구조로 대화를 제어할 수 없습니다.
- 가능은 하지만, 오픈빌더의 복잡성이 올라가고, 개발시간이 길어지게 됩니다.
04. 테스트
- ◻ 오류가 없는 일반적인 챗봇 흐름을 모두 테스트 합니다.
- ◻ 오류가 있거나, 반복적인 흐름이 있는 블럭을 테스트 합니다.
- ◻ 테스트 데이터를 기록하며, 공유합니다.