danbee.Ai 기본 개념
Edit me

챗봇을 만드는 가장 쉬운 방법, danbee.Ai란?

대화는 둘 이상의 주체가 서로 의도를 묻고, 의도에 따라 답을 하거나 정확한 의도를 알아내기 위해 다시 질문하는 과정입니다. 만약 모든 대화 상황에 대해 대응 할 수 있도록 만들 수 있다면, 상대방이 사람인지 기계인지 알 수 없을 것입니다. danbee.Ai는 챗봇과 같은 대화 서비스에서 필요한 다양한 상황을 개발코드 작성 없이 만들 수 있게 해주는 서비스 입니다.

챗봇이란?

사용자의 의도를 파악하여, 답변/접수를 대화로 진행하는 Bot서비스입니다. 이때 사용자의 의도를 알아내는 것을 ARS처럼 숫자나 버튼, 명령어로 알아낼 수도 있고 사람들이 평소에 쓰는 자연어를 통해 알아낼 수도 있습니다. ARS처럼 명확하게 의도를 알아내고 처리하는 방식을 룰기반 챗봇이라고 하고, 자연어처리를 통해 의도를 인식하고 답변하는 챗봇을 지능형 챗봇이라고 말하고 있습니다. danbee.Ai는 두 가지 방식 모두를 만들 수 있는 서비스 입니다.

챗봇 동작원리

비행기표를 구매하는 대화과정을 통해 챗봇의 동작원리를 이해해 보겠습니다. 김단비씨라는 분이 여행사에 전화를 걸어 내일 당장 뉴욕행 비행기표를 사는 상황을 생각해보시죠.

상담 대화 예시

(따르릉)
여행상담원 : 고객님과 함께하는 여행, OO여행입니다. 안녕하세요? 무엇을 도와드릴까요?
김단비씨 : 안녕하세요?
여행상담원 : 반갑습니다. 고객님~ 무엇을 도와드릴까요?
김단비씨 : 네, 내일 출발하는 뉴욕행 비행기표를 사려구요.
여행상담원 : 네 비행기표 예약하시려고 하시는군요? 
           출발지는 인천공항이신가요?
김단비씨 : 네. 인천이요.
여행상담원 : 잠시만요~  
           (잠시후...)
           고객님, 확인해 봤는데 오후에는 비행기가 없고,
           아침 5시 30분 A항공, 아침 7시 40분 B항공 2가지가 있네요!
(중략)

위와 같은 대화를 진행할때 전화상담원과 챗봇이 어떻게 달라지는지 보겠습니다.

상담원과 챗봇 대화 비교

대화맥락 대화 예제 챗봇에서의 동작
Greeting Message (만남인사) 상담원 : 고객님과 함께하는 여행, OO여행입니다. 안녕하세요? 무엇을 도와드릴까요? 상담원이 준비된 멘트로 고객을 맞이하듯 서비스가 시작되면 챗봇이 준비된 멘트로 고객을 맞이합니다.
Intent Classification (의도분류) & Entity Extraction (핵심어 추출) 상황1 - 김단비씨 : 내일 출발하는 뉴욕행 비행기표를 사려구요. 상황2 - 김단비씨 : 비행기표를 사려구요. 상황1에서의 김단비씨의 의도는 “비행기표 예매”로 분류될 수 있고, 핵심어는 “도착지 : 뉴욕”, “출발일 : 내일”이라는 것을 추출할 수 있습니다. 상황2에서의 김단비씨의 의도는 역시 “비행기표 예매”입니다. 그러나 핵심어는 나와있지 않네요.
Slot Filling Prompt (부족한 정보 재질의) 상담원 : 네, 고객님. 출발지는 인천공항이신가요? 상황1에서는 비행기표 예매를 위한 필수값인 출발지를 되물어 봅니다. 상황2에서는 출발지외에 도착지와 출발일도 함께 물어보게 됩니다.
Slot Filling Answer (재질의 응답) 김단비씨 : 네, 인천이요 출발지가 인천이라는 것을 확인합니다. 상황2에서는 하나씩 차례대로 물어보고 필수 값을 받아낼 수 있습니다.
API Query (API 질의) 상담원 : 잠시만요~ 상담원이 업무시스템을 통해 잔여 항공권을 조회합니다. 챗봇의 경우, 시스템의 API를 통해 상기 대화에서 입력받은 질의 조건을 기반으로 쿼리를 날립니다.
Result Speaking 상담원 : 고객님, 확인해 봤는데 오후에는 비행기가 없고,아침 5시 30분 A항공, 아침 7시 40분 B항공 2가지가 있네요! 챗봇은 API를 통해 알아낸 여러가지 내용을 고객에게 제시합니다.

선택한 항공권을 예약하기 위해 접수대화를 이어갈 수도 있고, 보여진 결과가 마음에 들지 않는다면 다른 조건으로 다시 확인도 가능합니다. 챗봇은 대화라는 방식을 통해 간단한 정보를 조회하고, 접수를 Self로 처리할 수 있는 서비스가 가능합니다. danbee.Ai는 위와 같은 대화를 손쉽게 만들고 서비스 할 수 있는 플랫폼입니다.

챗봇관련 용어

챗봇 동작원리를 살펴보면, 다양한 용어들이 나옵니다. 이해를 돕기위해 아래와 같이 용어를 정리하였습니다.

용어 설명 유사 표현
자연어 (Natural Language) 한국어, 영어 등과 같이 인간이 일반적으로 의사소통시 사용하는 수 많은 언어를 말합니다. 사람이 쓰는 말
NLU (Natural Language Understanding) 자연어로된 표현을 “이해”라는 관점으로 새롭게 분류/변환 하는 것을 의미합니다. 챗봇에서는 일반적으로 사용자의 의도와 그 의도속에 포함되어 있는 중요 키워드들로 변환하기 위해 NLU가 쓰입니다. 자연어 이해
인텐트 (Intent) 챗봇과 대화하는 사용자의 의도를 말합니다. Intent는 사용자의 입력문장에 따라 분류되는 단위이며, 챗봇이 답변하기 위한 기준이 됩니다. “오늘 날씨 어때?”, “오늘의 날씨”, “날씨좀 알려줘” 3가지 표현은 모두 “날씨정보조회”라는 하나의 의도로 분류될 수 있습니다. 의도
엔티티 (Entity) 입력문장에 포함되어 있는 중요 키워드를 의미합니다. 예를 들어 “내일 날씨 어때?” 라고 했을때 인텐트는 “날씨 문의”라고 한다면, “내일”은 일자에 해당하는 엔티티(Entity)입니다. “내일” 대신에 “오늘”이 올 수도 있고 11월 11일이 될 수도 있겠죠? 키워드, 핵심어
챗플로우(Chatflow) danbee.Ai에서는 대화의 흐름을 단순하게 모형화한 것을 챗플로우(Chatflow)라고 하기로 했습니다.챗플로우를 통해 대화의 맥락에 따른 챗봇의 답변, 시스템 연동 등을 만들어 갈 수 있습니다. 대화흐름
Slot Filling 챗봇이 사용자가 요구한 서비스를 처리하기 위해 필요한 값을 받기 위한 활동입니다. 일반적으로 되물어보고, 답을 받는 형태로 진행됩니다. 빈칸 채우기, 되묻기, 추가 질의

다음으로 할 일

위에서 나온 챗봇관련 개념에 익숙해지셨다면, 다음 글을 읽어보시면 좋을 것 같습니다.

간단한 챗봇 만들어보기