본문 바로가기
[개발] Programming/Tools

구글 챗봇, 다이얼로그 플로우 (dialogFlow)로 챗봇 만들어 보기

by eatyourKimchi 2020. 1. 11.

 

챗봇 - ChatBot

 

 어렵다면 어렵고 쉽다면 쉬운 게 챗봇이라고 생각합니다. 단순히 동작만 하는 챗봇은 네이버나 구글에서 제공하는 API를 사용하여 구현할 수 있지만, 원하는 태스크를 제대로 수행하는 챗봇을 원할 경우 시나리오부터 시작해서 많은 작업이 필요합니다. 저도 챗봇을 만들어보는 건 이번이 처음이라 한 단계씩 정리해가면서 만들어볼 예정이라 블로그에도 글로 남기기로 결정했습니다.

 

제가 만들어볼 챗봇은 구글에서 제공하는 다이얼로그 플로우라는 AI 플랫폼을 활용한 챗봇입니다. 아직까지 네이버 톡톡과 비교했을 때 장단점은 정확히 모르겠지만, 가장 대중적이라 레퍼런스가 많아서 선택했습니다. 구글 챗봇을 완성시키고 나서 네이버 챗봇도 사용할 예정이긴 합니다ㅎㅎ

 

 

 

01 계정 만들기

 

우선 구글 다이얼로그 플로우 사이트에서 계정을 만들어야 합니다. 구글 계정이 있다면 1초 만에 생성 가능합니다.

사이트 주소 > https://dialogflow.com/

 

 

 

02 새로운 챗봇 생성

 

로그인 후 화면 우측 하단에 파란색 버튼을 눌러 새로운 에이전트를 생성합니다.

 

 

 

생성 화면에서 CREATE 옆에 자신의 챗봇 이름을 입력합니다.

아래에서는 기준 언어와 시간대를 지정합니다.

입력을 완료하였다면 CREATE 버튼을 누르고 기다립니다.

 

 

 

03 챗봇 설정

 

챗봇이 생성되면 아래와 같은 화면으로 넘어갑니다.

 

 

 

화면에 보이는 두 개의 항목은 둘 다 Intent로 해석하면 의도가 되겠습니다.

첫 번째는 대화하다가 대화가 이해 안 될 경우, 두 번째는 대화 시작 시 나타나는 (인사) 문구입니다.

 

 

 

04 챗봇 훈련시키기

 

새로운 Intent를 추가해 보겠습니다. 추가할 '의도'는 문의 접수 기능입니다.

우선 화면 상단에 'CREATE INTENT'를 클릭하고 그다음 나오는 화면에서 이름을 입력합니다.

 

 

 

이제부터가 챗봇 노가다의 시작입니다.

지금부터 해야 될 작업이 챗봇으로 들어올 문구를 미리 입력하는 작업입니다. 일명 'Training Phrases'.

 

회사에서 챗봇을 만드는 거면 미리 시나리오를 작성하고 필요하다면 번역 작업도 미리 해야겠죠?

저는 개인적으로 만드는 거라 간단하게 몇 가지 상황에서 동작하는 챗봇을 만들겠습니다.

 

Training Phrases 항목 아래쪽에 add training phrases를 클릭합니다.

이제 챗봇 대화로 예상되는 문구들을 입력해야 합니다.

사용자가 입력할 것으로 예상되는 문구를 쌍따움표 옆에 입력한 뒤 엔터키를 누르면 추가됩니다.

SAVE를 클릭해야 최종적으로 저장되니 입력을 완료했다면 SAVE를 반드시 클릭합니다.

 

 

 

이제 해야 될 작업은 개체 추가입니다.

예를 들어 날짜, 요일, 국가 명, 통화 등등은 이미 개체로 등록이 되어 있기 때문에 인식이 가능하지만,

고객센터나, 회사 명, 제품 명 등은 인식이 안되기 때문에 개체로 직접 등록해야 됩니다.

 

 

 

등록하는 방법은 추가할 단어를 마우스 드레그나 더블 클릭하면 뜨는 레이어에서 'Create new' 버튼으로 하면 됩니다.

이때 Phrases를 저장하지 않으면 날아가기 때문에 반드시 상단에 SAVE 버튼을 클릭하고 개체를 생성해야 됩니다.

 

이제 새로 뜨는 화면에서 신규 개체 명을 입력해줍니다.

저는 '고객센터'와 관련된 단어들을 개체로 추가할 예정입니다.

예상되는 단어들은 '고객센터, 비즈니스 정보, 고객문의' 정도가 될 것 같습니다.

이 단어들을 하나의 개체로 인식시킬 예정이며, 개체 명은 'CUSTOMER_CENTER'로 하겠습니다.

 

 

 

예상되는 세 가지 키워드를 add row로 추가하였고

각각의 키워드에 대해 유사어를 의미하는 synonym도 등록했습니다.

 

 

 

SAVE를 하고 다시 Intent 화면으로 돌아가서 개체를 지정해 줍니다.

 

 

 

지정이 완료되면 아래와 같이 주황색 음영이 생깁니다.

 

 

 

이제부터는 새로운 Phrase를 등록했을 때 객체가 포함되어 있으면 자동으로 음영이 들어옵니다.

 

 

 

개체 추가 작업은 반대로 진행해도 괜찮습니다.

먼저 개체를 등록하고 Training Phrases를 등록해도 상관없습니다.

 

 

05 챗봇 행동, 필수 값 등록하기

 

이제 스크롤을 내려서 'Action and parameters'를 등록할 차례입니다.

이 기능은 챗봇 대화에 필요한 필수 파라미터와 정보를 등록하는 곳입니다.

 

예를 들면 사용자가 '연락처 알려 주세요'라고 입력하면,

챗봇이 응답으로 '어떤 연락처요?'라고 액션을 취할 수 있게 설정하는 기능입니다.

이 기능을 활성화시키기 위해서는 아래 이미지에서 보이는 REQUIRED를 클릭합니다.

 

 

 

클릭하면 사용자가 필수 값을 입력하지 않았을 때 대화에 노출시킬 문구를 입력할 수 있습니다.

우측에 Define prompts..를 클릭하면 문구를 입력할 수 있습니다. 입력을 완료 후 SAVE 해줍니다.

 

 

 

프롬프트 창에는 아래와 같이 질문을 등록할 수 있습니다.

입력 후 저장을 누르면, 유저가 '연락처를 알려주세요'라고 입력하면

챗봇은 아래 두 문장 중 하나를 랜덤으로 선택해서 답변하게 됩니다.

 

 

 

필수 값을 지정했기 때문에 이제부터는 사용자가 연락처의 주체를 입력하지 않으면 챗봇은 계속 질의를 하게 됩니다.

그리고 사용자가 연락처의 주체를 앞서 등록한 고객센터, 비즈니스 정보, 고객문의 중 하나를 입력하면 

@CUSTOMER_CENTER에 해당 파라미터가 저장되고 챗봇은 필수 값을 입력한 것으로 인식하고 넘어갑니다.

 

 

06 챗봇 응답 등록

 

이제 필수 값을 받은 뒤 다음 단계에서 챗봇이 응답하는 부분을 등록해보겠습니다.

응답을 등록하는 화면은 'Response' 입니다.

 

 

 

ADD Response를 누르면 아래와 같이 등록 화면이 나오는데

마찬가지로 여러 개의 문장을 등록할 경우 랜덤으로 챗봇이 골라 응답합니다.

 

만약 사용자가 입력한 파라미터를 응답에 포함시키고 싶다면 '$'을 입력한 뒤 파라미터를 선택하면 됩니다.

저는 위에서 @CUSTOMER_CENTER를 입력받았기 때문에 응답 문장에도 포함시키겠습니다.

 

 

* 추가한 응답 문장 *

 

이제 아주 기본적인 챗봇은 등록이 완료되었습니다.

 

 

07 챗봇 테스트

 

쳇봇 테스트는 페이지 우측에 회색 음영 박스에 입력하면 가능합니다.

 

 

 

'연락처 알려줘'라고 입력하니 챗봇이 '누구의 연락처를 알려드릴까요??'라고 정상적으로 응답했습니다.

일단 초간단 챗봇 생성은 성공했습니다~!

 

 

 

이제 챗봇 대화에 필수 파라미터를 포함해서 질의를 날려보겠습니다.

'고객센터'라는 필수 요청 파라미터를 추가하니 챗봇이 질문을 인식하여 응답을 합니다.

 

 

 

챗봇은 필수 파라미터가 입력될 때까지 대화를 진행시키지 않고 입력하길 요청합니다.

만약 필수 파라미터가 여러 개일 경우 모두 입력이 될 때까지 진행되지 않겠죠?

 

이렇게 챗봇 초안은 완성이 되었습니다.

다음 단계에서는 채팅창을 별도로 지정하여 구글 다이얼로그와 연동시켜보겠습니다.

 

그럼 챗봇 만들어보기 포스트는 이것으로 마치도록 하겠습니다.

감사합니다. 

 

댓글