챗봇이나 AI스피커, 가상비서와 같은 대화형 인터페이스를 설계하려고 한다면, 이 글에 나오는 대화흐름 패턴에 대해 꼭 알고 넘어가자.
여러 번 주고 받으니, Multi-Turn 패턴!
사용자가 한번 발화하고 나서 챗봇이 다시 되묻는 과정이 있다면? 모두 멀티턴이다. 챗봇은 다시 되물어 보면서 어떤 대화를 진행하고 있는 지 맥락을 유지한다. 되물어 보는 이유는 크게 2가지이다. 보다 정확한 정보를 제공하기 위한 경우가 첫번째이고 두번째는 사용자가 입력한 문장을 기억하기 위함이다. 단, 사용자의 최초 발화에서 챗봇에게 필요한 정보가 있는 경우 되묻기(Slot-Filling)단계를 건너뛰기도 한다.
생각보다 단순한 대화의 원리, 묻고 답하기
- 무언가를 물어본다.
- 알면 대답한다.
- 모르면 알기 위해 추가정보를 되묻는다.
- 받은 정보에 따라 대답한다.
생각보다 단순한 대화의 원리, 부탁하기 (요청/지시)
- 무언가를 부탁한다.
- 부탁을 처리하기에 충분하다면 처리해준다.
- 부탁을 처리하기에 불충분하다면 추가 정보를 되묻는다.
- 받은 정보에 따라 처리해준다.
되묻기. 슬롯필링 (Slot-Filling)
슬롯필링은 보다 정확한 정보를 제공하기 위해 필요한 정보를 사용자에게 요구하여 받아내는 기법이다. 멀티턴에서는 대부분 슬롯필링을 이용해 사용자의 입력을 유도한다. 이는 자연어 처리가 가능한 챗봇에서 단답형 다음으로 많이 사용되는 패턴이다.
예컨데, 챗봇에게 “전화번호 문의”에 해당하는 문장을 다음과 같은 형식으로 발화할 수 있다.
CASE (1) 전화번호 좀 물어보려구요.
CASE (2) 시각디자인학과 전화번호가 어떻게 되요?
(1)번의 경우, 전화번호 문의라는 의도로 해석은 되지만 무슨 학과에 해당하는지는 알기 어렵다. (2)번의 경우, 전화번호 문의라는 의도로 해석되는 동시에 “시각디자인학과”라는 핵심어가 존재한다. (1)과 같은 상황이라면 답변하기 위해서는 “어디 전화번호요?” 라고 되물어 볼 수 있다. 이때, 사용자가 “물리학과” 라고 대답하면 비로소 해당 학과의 전화번호를 알려주는 방식이다.
슬롯필링을 통해 받은 정보에 따라 API결과가 달라질 수도 있다. 다시 말해 API로 전달되는 정보를 슬롯필링을 통해 사용자에게 받아내는 것이다.
M2패턴을 살펴보면, 기상청 API에서 지역 날씨 정보를 가져오기 위해 지역을 슬롯필링으로 가져오고, 지역에 따라 말투를 다르게 설정하여 사용자에게 더 재미있는 경험을 제공하고 있다.
초기값을 활용한 슬롯필링 처리
1)번의 상황에서 챗봇이 “어디 전화번호요?”라고 물어보는 대신에, 그냥 학사팀 전화번호나 대학교 대표전화번호를 알려줄 수도 있다. 이렇게 하게 되면, 다시 되물어보는 상황이 없어지게 된다. 일종의 Single-Turn 대화패턴의 간소함을 가져갈 수 있다. 텍스트기반 챗봇에도 사용될 수 있지만 주로 음성대화흐름을 설계할 때 자주 사용된다. AI스피커에게 “음악 틀어줘” 라고 했을 때, “어떤 가수의 음악을 틀어드릴까요?” 라고 묻지 않고 차트 TOP 100을 바로 틀어준다.
대화형 인터페이스의 기본, 단답형 + 멀티턴.
대화의 원리는 생각보다 단순하다. 단답형 또는 멀티턴으로 처리하는 것이 일반적이다. 바로 답변 가능한 것은 답변하면 되고 바로 답변이 어려우면, 사용자에게 묻거나(슬롯필링) 시스템에 묻는다(API). 이론적으로는 노력에 따라 모든 것에 대답할 수 있는 챗봇을 만들 수 있다. 하지만 이는 이론일 뿐. 가장 빈번하게 문의되는 질문과 요청에 집중하는 지혜를 발휘하자. 멋진 대화형 인터페이스를 만들 수 있을 것이다.
작성자 : RAPA
함께해요! 챗봇시대 :)
모든 사물, 디지털 매체와 말이 통하는 시대! 단비Ai와 함께 반드시 오게될 챗봇시대를 열어갔으면 좋겠습니다.
혹시 서비스 소개서를 찾고 있나요?
단비Ai 서비스 소개서는 아래 링크를 클릭해 다운로드 하실 수 있습니다.
서비스 소개서 다운로드
챗봇을 교육용도로 활용하고 싶으신가요?
단비Ai를 기반으로 만들어진 Ai교육, 에이아이런을 만나보세요 :)