챗봇을 만드는 가장 쉬운 방법 단비.Ai!
챗봇이란?
챗봇이란 사용자와 대화를 나누며 사용자의 의도를 파악하고 일을 처리하는 진행하는 인터페이스입니다.
사용자의 의도는 ARS과 같이 숫자나 버튼, 명령어로 알아낼 수도 있고 사람이 실제 대화를 나누듯이 자연어를 통해 알아낼 수도 있습니다. ARS처럼 일정 의도를 미리 정해놓고 입력받아 처리하는 방식을 룰기반 챗봇이라고 하고, 자연어처리를 통해 의도를 인식하고 처리하는 챗봇을 지능형 챗봇이라고 합니다. 단비Ai는 개발코드 작성 없이 두 가지 방식 모두를 만들 수 있는 대화형 인터페이스 제작 플렛폼입니다. 자주 묻는 질문
단비와 함께하는 챗봇 입문교육
단비에서는 챗봇을 시작하는 분들을 위한 입문교육을 영상으로 제공하고있습니다. 지금 유튜브에서 확인하실 수 있습니다. 영상강의 보러가기
직접 만들기 힘들거나, 제작에 앞서 간편하게 단비플렛폼을 시도해보고 싶으신 분들을 위해 위자드 기능이 제공되고 있습니다. 목적에 맞는 위자드 챗봇을 찾아 필요한 정보만 채워넣으면 바로 사용할 수 있는 챗봇이 완성됩니다. 위자드 챗봇 자세히 알아보기
튜토리얼
챗봇 사용에 익숙하고, 개발경험이 있으시다면 바로 따라해볼 수 있는 튜토리얼을 추천드립니다. 챗봇 만들기 튜토리얼
챗봇의 기본
동작원리
비행기표를 구매하는 대화과정을 통해 챗봇의 동작원리를 이해해 보겠습니다. 김단비씨라는 분이 여행사에 전화를 걸어 내일 당장 뉴욕행 비행기표를 사는 상황을 생각해보시죠.
상담 대화 예시
(따르릉)
여행상담원 : 고객님과 함께하는 여행, OO여행입니다. 안녕하세요? 무엇을 도와드릴까요?
김단비씨 : 안녕하세요?
여행상담원 : 반갑습니다. 고객님~ 무엇을 도와드릴까요?
김단비씨 : 네, 내일 출발하는 뉴욕행 비행기표를 사려구요.
여행상담원 : 네 비행기표 예약하시려고 하시는군요?
출발지는 인천공항이신가요?
김단비씨 : 네. 인천이요.
여행상담원 : 잠시만요~
(잠시후...)
고객님, 확인해 봤는데 오후에는 비행기가 없고,
아침 5시 30분 A항공, 아침 7시 40분 B항공 2가지가 있네요!
(중략)
위와 같은 대화를 진행할때 전화상담원과 챗봇이 어떻게 달라지는지 보겠습니다.
상담원과 챗봇 대화 비교
대화맥락 | 대화 예제 | 챗봇에서의 동작 |
---|---|---|
Greeting Message (만남인사) | 상담원 : 고객님과 함께하는 여행, OO여행입니다. 안녕하세요? 무엇을 도와드릴까요? | 상담원이 준비된 멘트로 고객을 맞이하듯 서비스가 시작되면 챗봇이 준비된 멘트로 고객을 맞이합니다. |
대화의도 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로 처리할 수 있는 서비스가 가능합니다. 단비Ai는 위와 같은 대화를 손쉽게 만들고 서비스 할 수 있는 플랫폼입니다.
챗봇관련 용어
챗봇 동작원리를 살펴보면, 다양한 용어들이 나옵니다. 이해를 돕기위해 아래와 같이 용어를 정리하였습니다.
용어 | 설명 | 유사 표현 |
---|---|---|
자연어 (Natural Language) | 한국어, 영어 등과 같이 인간이 일반적으로 의사소통시 사용하는 수 많은 언어를 말합니다. | 사람이 쓰는 말 |
NLU (Natural Language Understanding) | 자연어로된 표현을 “이해”라는 관점으로 새롭게 분류/변환 하는 것을 의미합니다. 챗봇에서는 일반적으로 사용자의 의도와 그 의도속에 포함되어 있는 중요 키워드들로 변환하기 위해 NLU가 쓰입니다. | 자연어 이해 |
대화의도 (Intent) | 챗봇과 대화하는 사용자의 의도를 말합니다. Intent는 사용자의 입력문장에 따라 분류되는 단위이며, 챗봇이 답변하기 위한 기준이 됩니다. “오늘 날씨 어때?”, “오늘의 날씨”, “날씨좀 알려줘” 3가지 표현은 모두 “날씨정보조회”라는 하나의 의도로 분류될 수 있습니다. | 의도 |
엔티티 (Entity) | 입력문장에 포함되어 있는 중요 키워드를 의미합니다. 예를 들어 “내일 날씨 어때?” 라고 했을때 대화의도는 “날씨 문의”라고 한다면, “내일”은 일자에 해당하는 엔티티(Entity)입니다. “내일” 대신에 “오늘”이 올 수도 있고 11월 11일이 될 수도 있겠죠? | 키워드, 핵심어 |
대화흐름(Chatflow) | 단비Ai에서는 대화의 흐름을 단순하게 모형화한 것을 대화흐름(Chatflow)라고 하기로 했습니다.대화흐름를 통해 대화의 맥락에 따른 챗봇의 답변, 시스템 연동 등을 만들어 갈 수 있습니다. | 대화흐름 |
Slot Filling | 챗봇이 사용자가 요구한 서비스를 처리하기 위해 필요한 값을 받기 위한 활동입니다. 일반적으로 되물어보고, 답을 받는 형태로 진행됩니다. | 빈칸 채우기, 되묻기, 추가 질의 |
다음으로 할 일
위에서 나온 챗봇관련 개념에 익숙해지셨다면, 다음 글을 읽어보시면 좋을 것 같습니다.