brunch

You can make anything
by writing

C.S.Lewis

by Pearl Nov 17. 2019

업무용 챗봇을 만드는 10단계

이 글은 개인 공부 목적을 위해 번역한 글로 오역이 있을 수 있습니다. 원글은 여기서 확인하세요.


많은 전용 도구들 덕분에 챗봇만들기는 상대적으로 많이 쉬워졌다. 그러나 업무용 챗봇만들기는 쉽지 않을 수 있다. '똑똑'한 기능과 개인화도 필요하지만, 결정적으로 업무를 처리하는 '오래된' 방법을 극복하고 직원들이 선호하는 도구가 되어야 하기 때문이다. 


AI챗봇을 만들고 싶다면, 여기 성공을 위한 10단계를 참고하라. 이 글에서 단계들을 하나하나 살펴볼 것이다. 이 글의 마지막 단계까지 갔을 때 당신이 만든 챗봇을 팀원들이 좋아할 수 있도록 지속적으로 향상하는 기술을 배우게 되길 바란다.  


1단계 : 일어날 수 있는 유즈케이스 - use cases를 모두 모아라


우선, 우리는 위압적으로 느껴질 수 있는 빈 종이에서 시작한다. 

챗봇이 무슨 일을 할까? 


예를 들면, 당신이  업무에서 해야 할 것들이지만 정말 당신을 괴롭히는 것이 무엇인지 생각해보라. 그것들 중에 너무 시시하거나 장황해서 만약 개인 비서에서 넘길 수 있다면 넘기고 싶은 게 무엇인가?

그리고 몇몇 팀원들에게 같은 질문을 해보라. 누군가를 잡고 물어보거나, 조직 내 채팅룸에 질문을 올려보라. 생각보다 굉장히 빨리 찾을 수도 있다. 그리고 필요했던 것 이상으로 더 많은 아이디어를 얻게 될 수 있다. 아마 이런 것들이 포함되어 있을 것이다.

누군가의 전화번호 찾기

온라인 미팅에 연결하기

나의 휴가일수 알아내기

참여할 수 있는 교육과 훈련 예약하기

오늘 점심이 무엇인지 알아내기

고장 난 IT설비 신고하기

고객 결제 상태를 수동으로 확인하기 

이런 것들은 사람들을 귀찮고 짜증 나게 만든다. 그래서 아마 이 가이드에서 이 단계가 가장 쉬울지도 모른다. 


2단계 : 유저스토리 - user stories 설계하기


다음은 '유즈케이스'와 연결된 '유저스토리'를 찾아내는 것이다. 만약 당신의 유즈케이스가 '피자 주문하기'라면 유저스토리는 다음과 같다. 


유즈케이스 : 피자 주문하기

유저스토리

새로운 주문 만들기

배달 상태 체크하기

적합하지 않다면 항의 하기

거래하기

...


여기서 볼 수 있듯이 모든 유저 스토리는 여러분의 팀을 위한 챗봇을 만들 때 각별한 주의를 요구한다. 아아, 우리는 지금 피자를 만들고 있는 건 아니고, 모든 사람들이 알 수 있는 맛과는 거리가 먼 예를 골라야 한다: 

바로 휴가 요청이다.


많은 직원들은 거의 도전에 가깝게 휴가 요청하기를 실행한다. 올해 개인 휴가 일수를 찾는 것부터 시작해서, 요청을 도와줄 사람 찾기, 궁극적으로 요청을 제출하는 것까지.


이 예시는 확실히 똑똑한 휴가 요청 챗봇을 구축하기 위한 예시로 매우 적합하다. 그렇지만 피자를 주문하는 것보다 더 복잡하고 여러 단계가 있어서 모든 '유저스토리'를 설계할 필요가 있다. 마지막 단계까지 얼마나 많이 남아 있는지 깨닫게 해주는 중간의 모든 단계들을 말이다. 


다음은 우리가 확인한 것들이다. 


A) 모든 시점

관련성 있는 정책은 무엇인가?

전형적인 연차와 배심원 요청과 같은 정부가 정한 휴가는 다른 정책을 가진다. 예를 들어 캐나다 공휴일, 육아 휴직, 또는 종교적 휴가는 모두 당신의 노동력 일부에 영향을 미칠 수 있다. 당신은 이 모든 것을 모으고 확인해야 한다. 그중 일부는 오직 특정 직원들에게만 적용되는지 여부도 확인해야 한다.


B) 요청하기 전에

나는 얼마나 많은 휴가를 갖고 있는가?

HR 또는 근무-계획 소프트웨어는 일반적으로 모든 사람들이 몇 개의 휴가를 갖고 있는지 알고 있다. 사용 중인 애플리케이션이 무엇인지 찾아라.

내가 질문을 한다면 누가 답하는가?

직원들의 요청 단계 또는 그들의 질문 특성에 맞춰 HR이나 그들의 관리자, 또는 IT에 말할 필요가 있을 것이다. 각 단계에서 책임질 사람을 찾아라.


C) 요청 만들기

양식은 어디에 있는가?

하나의 양식으로 모든 휴가를 처리하는지 또는 휴가 유형별로 다른지 확인하고 그것들에 대한 링크를 확인하라.

API를 통해 제출할 수 있나?

이것은 기술적으로 들릴 수 있지만, 챗봇과 같이 외부 애플리케이션이 새로운 등록을 하기 위해서는 HR 포탈이 'incoming' 요구들을 받아줘야 한다. 애플리케이션이 API를 가지고 있는지 아닌지 확인하라. 예를 들어 만약 당신이 Workday를 갖고 있다면 당신은 API를 찾기 위해 "Workday API"로 검색해볼 수 있다.

만약 당신이 API가 없는 것을 알고 있다면 각자의 애플리케이션을 업데이트해서 추가해야 할 수도 있다.


D) 제출 후에

제출 후에 요청이 변경될 수 있나?

HR 소프트웨어가 요청에 대한 수정을 허락할지 안 할지 체크해야 한다.

직원들은 그들의 요청에 대한 상태를 확인할 수 있나?

HR 포탈은 요청 건이 어느 단계에 있는지 보여 주는가?


E) 요청이 처리된 후에

요청자에게 처리 결과를 어떻게 알려주나?

알림 전달 도구 상에서 이메일 알림을 보류할 수 있나?(이메일 부하 감소를 위해)

요청 처리를 위한 프러시저는 무엇인가?

동료와 고객의 부재를 알리기 위한 사무실 밖 메시지, 기계 답변 공지 그리고 캘린더 일정이 만들어지는가? 

대리인이 관련된 업무에 접근할 수 있나?


우리가 확인하지 않은 것은 관리자다. 그들은 챗봇에 무엇을 요청할까? 그들은 어떻게 요청을 승인하거나 거부할 수 있나? 엄격히 말해서 우리는 그것을 위한 구분된 테이블을 만들어야 한다.  - 그러나 당신이 보다시피 외견상으로 간단해 보이는 사용자 뷰는 유저 스토리, 변수, 조건들이 늘어나면서 서로가 연결된 격자들 속에서  빠르게 확산된다. 업무를 위한 모든 챗봇은 사용자를 위해 이런 프로세스 상의 마찰을 없애야 한다. 그렇지 않으면 미래의 사용자에게 충분히 유용해 보이지 않을 수 있다.


업게의 공공연한 비밀 : 챗봇 저널은 챗봇 실패의 가장 흔한 원인이 이 마찰을 줄이는 것에 대한 실패라고 말했다. 그래서 시간을 투자해서 만들고자 한다면 사용자의 실제적 문제를 정의하는 것부터 해야 한다. 


3단계 : 유용성 점수를 체크하라


다음 질문은 챗봇이 실제 처리할 영역은 어디인가?이다. 정책과 관련된 질문을 할 수 있나? 휴가 개수를 확인할 수 있나? 새로운 휴가 요청을 제출할 수 있나? 이것들 중에 몇 개만 처리해야 한다면 어떤 것을 처리해야 하나?

이 질문들에 답하기 위해 당신은 모든 단일 유저스토리를 목록으로 뽑아야 하고 그것을 유용성 점수로 평가해야 한다. 


3 - 완전히 핵심적인 유스케이스. 지원하지 않으면 챗봇은 의미가 없음

2 - 사람들이 봤을 때 일반적으로 발생하는 것

1 - 있으면 좋지만 80%는 사용하지 않음 

0 - 아마 너무 드물게 발생해서 그것을 해결하기 위해 사람을 찾아서 해결할 수도 있다.


휴가 요청 사용자 스토리의 유용성 점수 

다른 정책 물어보기 -------------------- 2점

휴가 건수 확인하기 -------------------- 3점

요청 양식에 휴가정보 입력하기 ------- 3점

정확한 담당자를 찾아내기 ------------- 3점

제출 이후에 요청 변경하기 ------------ 1점

진행 중인 요청 건의 상태를 확인하기 - 1점


4단계 : 기술적 실현 가능성을 평가하라


이제 큰 문제는 실제로 할 수 있는가?이다. 많은 챗봇들은 질문에 답을 할 수 있다, 그러나 그것들은 일상적이고 일반적인 답변이거나 인트라넷에 있는 글의 링크를 포함한다. 이런 류의 답변은 챗봇 사용자를 떠나게 한다.

모든 것에 대해 잘 정리된 답변을 할 수는 없지만, 휴가일수 같은 것은 HR 포털의 어디론가 가는 링크가 아니라 직접적으로 개인화된 값을 전달해야 한다. 이와 마찬가지로 사용자는 챗봇 안에서 휴가 요청을 할 수 있길 원한다. (모바일에 친화적이지 않을 수 있는) 인트라넷상의 지루한 양식 화면으로 가길 원하지 않는다.


일반적으로, 3점의 유용성 점수를 가진 유저스토리는 모두 챗봇 안에서 제공되어야 한다고 말할 수 있다. 유용성 점수 2점의 모든 것들, 당신은 저 '정리된' 답변들에 의존할 수 있다.(적어도 당신의 첫 번째 구축에서). 그리고 1점의 모든 것들은 챗봇의 첫 오픈 시에는 무시해도 무방하다.

만약 당신이 이 중요한 규칙을 따르지 않고 너무 많은 유즈케이스들을 간단하게 '정리된' 답을 가지고 있다면, 장기적으로 당신의 직원을 대면하는 챗봇은 당신이 원하는 만큼 사용자에 적응할 수 없을 것이다.

(챗봇을 처음 접하는 동료들이 챗봇 사용에 있어 충분한 유용성을 느끼지 못한다면, 그들은 챗봇이 그들의 삶이 더 쉬워지게 만들 수 있다는 것을 다시는 느끼지 못하게 될 수 있다.)

당신은 이런 점수 시스템을 사용할 수 있다. 


3점 - 정보는 API/데이터베이스를 통해 가능하거나, 양식을 제출의 경우에도 API를 통해 가능함

2점 - 정보가 존재하지만 오직 링크를 통해서만 가능하다.

1점 - 이 사용자 스토리는 심지어 현재 데스크톱 애플리케이션에서 지원되지 않는다.


마음 안에서 기술적 실현 가능성을 위해 우리의 사용자 스토리의 점수를 매겨보라. 


유저스토리                                                유용성               기술성

다른 정책 물어보기                               2점                   3점

휴가 건수 확인하기                               3점                   3점

요청 양식에 휴가정보 입력하기             3점                  2점

정확한 담당자를 찾아내기                     3점                  3점

제출 이후에 요청 변경하기                    1점                  1점

진행 중인 요청 건의 상태를 확인하기     1점                  2점


5단계 : 점수로 우선순위 매기기


여러 분의 유저스토리에 기술 실현 가능성 칼럼을 추가했다면, 각 유저스토리는 최대 6점 이내의 점수를 얻었을 것이다. 이 결과는 자연스럽게 어떤 유저스토리를 가장 먼저 추구해야 하는지 지침을 제공한다.


6 - 사용자가 꼭 필요하고 기술적으로 가능하다.

5 - 사용자에게 필요하지만 개발이 쉽지 않다. 

4 - 해야 하는 기능이지만, 아마도 보다 단순한  '정리된' 답변으로 충분하다.

3 - 개발은 가능하지만 고도화 단계에서 진행해야 하거나, 할 수 있다.  

2 - 노력이 들지 않는 쉬운 방법이 없음에도 무리해서 구현할 만큼 유용하지 않다. 

1 - 이 지점에서 시간을 투자하는 것은 최선이 아니다.


6단계 : AI학습모델을 구축하라


챗봇은 자연어를 이해할 필요가 있다. 이를 NLP라고 부른다. 우리 AI가 '학습'할 수 있으려면 다른 유저스토리를 이끌어내기 위해 사람들이 말할 수 있는 모든 것들을 생각해서 질문과 명령어를 정리할 필요가 있다.  

우리가 생각해낸 예시는 다음과 같다.


합산 점수       유저스토리                      가능한 질문과 명령어

6점               휴가일수 알아내기           나에게 남아있는 PTO는 얼마입니까?

                                                              휴가를 요청할 수 있나요?

                                                              내 연차는 어떻게 되나요?

6점              정확한 담당자 찾기           연차에 대해 질문이 있어요.

                                                              휴가 정책에 대해 도움이 필요합니다.

                                                              휴가에 대한 질문은 누구에게 해야 하나요? 

5점               휴가 요청하기                   휴가 2일 요청해줘

                                                              휴가 요청



7단계 : 챗봇 구축을 시작하라


여기까지 진행했다면, 당신은 이미 올바른 챗봇 구축이 얼마나 도전적인 과제인지 알아챘을 것이다. 그렇지만 우리는 실제 직원용 챗봇 구축을 시작했고, 이전 단계들은 우리 삶을 편하게 만들어 줄 것이다. 챗봇 구축을 시작하기 전에 챗봇 플랫폼을 결정할 필요가 있다. 이 예에서 디지털 비서를 사용하기 위해 인기 있는 도구가 어떤 것이 있는지 나열했다.


Microsoft Bot Framework

전체 챗봇 플랫폼( 이름이 루이스)이 고객을 지원하는 방향으로 설계되어 있다. 대부분의 사람들은 당신의 웹사이트에서 FAQ 섹션을 전환하는 Q&A Maker와 함께 시작한다.


Dialogflow

형식적으로 API.ai로 알려진 , 이 제품은 구글에 의해 만들어졌고 대화 기술이 매우 좋다. Microsoft 제품이 아닌 경우 대부분의 제품에 빠르게 배포할 수 있다. 슬랙, 웹엑스 팀스 등


Wit.ai

Wit.ai는 페이스북 소유이다. 일반적으로 대화가 흐를 수 있는 방법들을 시각적으로 표현할 수 있는 GUI를 제공하는 대화 봇으로 알려져 있다. 


Botpress

Botpress는 '유명 브랜드' 챗봇 플랫폼에 대한 오픈-소스 대체품으로 매우 인기 있다. 커뮤니티가 활성화되어 있고, 기능이 풍부하다.


adenin Digital assistant

주석 : 이것은 우리의 제품이다.

Digital Asstitant는 많은 발화들을 관리하기 위해 특별히 만들어졌다. 쉬운 NLP 대화를 제공하고 API 호출을 통해 요청을 처리한다. 

시작하기 위해 디지털 비서 계정을 만든다. www.adenin.com/register에 방문해서 만들고, 이것은 무료다. 셋업하고 고객 카드로 로그인한 뒤에 생성하라. 그러고 나서 테이블 상단에 있는 최상위 유저스토리로 간단하게 시작한다; 우리의 사례에서는 '휴가일수 찾기' 라고 볼 수 있다.


'Question'에서 첫 번째 질문을 작성한 다음, 더 많은 질문이나 명령어를 입력하라.

그다음, 텍스트 답변을 입력한다. 이것은 단순한 문장이 될 것이다. 챗봇이 사용자에게 응답할 때 문장 속에 있는 {item.allowance}가 위치하는 곳에 휴가 일수를 넣을 수 있다. 개인에 따라 달라지는 휴가 일수를 유동적으로 입력하기 위해 챗봇의 답변 안에 위치를 지정하는 것이다.

다음 단계는 '발화'를 업그레이드하여 질문을 똑똑하게 만들 필요가 있다. 문제는 이런 거다. 챗봇은 우리가 말해주지 않는 한  사용자가  'PTO'에 대해 질문했을 때 'PTO'가 '연차'와 같은 의미라는 것을 모른다. 그래서 우리는 우리의 질문으로 돌아가서 이 동의어들이 무엇인지 AI에게 가르치기 위해 특정 문법을 사용한다.


나는 더 어떤 (연차 | PTO | 타임오프)를 요청할 수 있나요?

내 (연차 | PTO | 타임오프) 개수를 보여줘.


옵션을 나타내기 위해 괄호를 사용한 것을 볼 수 있다. 그리고 파이프 기호 | 로 이 동의어들을 구분한 것을 볼 수 있다.  각각 문장만으로도 우리의 AI를 위한 기초가 만들어졌다. (물론 나중에, 더 많은 사람들이 그것을 사용함으로써, 우리는 AI가 수정하길 원한다.) 이후, 우리는게속 해서 SAVE 할 수 있다.


8단계 : 데이터-바인딩


이 가이드에서 항상 나는 챗봇들이 얼마나 '정형화된' 답변에 의존하는지를 말한다. 그러나 너무 많이 사용한다면 사용자가 유용하지 않다고 느끼게 되기 시작해 챗봇이 외면당할 수 있다. 

실질적인 변화를 위해 데이터-바인딩이라고 불리는 기술을 쓸 필요가 있다. 일반적으로 데이터-바인딩은 '당신은 X 개의 휴가가 남아 있습니다.' 안의 'X'값을 넣는 것이다.


API의 품질에 따라, 데이터 바인딩은 5분 작업이 될 수도 있고 5일이 걸릴 수도 있다; 이 때문에 더 적합하고 접근하기 쉬운  API가 어떤 것인지 조심스럽게 고려할 필요가 있다.


우리의 사례에서, 이 통합은 디지털 비서에서 연차 카드를 추가하는 기능에 적용될 수 있다. 

Digital Assistant 버튼에 Add를 클릭하고 당신의 HR에서 당신이 사용할 서비스 제공자를 선택하라. Digital Assistant는 이후 당신에게 설치를 요청하고, 당신의 서비스를 위해 요청된 설정 프로세스를 통해 당신에게 가이드할 것이다. 예를 들어 oAuth 인증 등

당신은 지금 심지어 당신의 카드로 돌아갈 수 있다. 그리고 당신의 카드 아래에 있는 도움을 주는 연결 링크를 삽입할 수 있다. 그래서 사용자들은 직접 그들이 요청을 관리할 필요가 있는 HR포탈로 바로 이동할 수 있다. 이를 위해 SAVE를 누르기 전,  Link Tab을 상단에 두고 직접 이동하는 URL과 버튼을 라벨을 Text에 입력한다. 


9단계 : 챗봇 배포하기


우리는 거의 다했다. 그리고 이 단계는 대부분의 챗봇 플랫폼에서 상대적으로 단순하다. 채널들은 사용자가 봇과 상호작용을 하는 것과 구분된 방법들이다. 잠재된 채널이 12개 이상이 될 수도 있다.


챗봇 자체 앱(만약 하나가 있다면)  

회사 모바일 앱  

슬랙  

마이크로소프트 팀스  

페이스북 워크플레이스  

알렉사  

구글 비서  

인트라넷 셰어포인트 안으로 통합  

핸디 브라우저 확장  

 ...  


위에 나열한 것들의 모든 것은 아닐지라도 연관된 게 있을 것이다. 실제로, MVP를 위해 당신은 다음 중에 하나를 선택해야 한다. 

당신이 조직 전체에서 이미 사용하고 있는 채널들에 챗봇을 배포(슬랙을 쓰고 있다면 슬랙 앱)  

웹앱(아웃 오브 박스 또는 자체로 만들었거나)을 사용. 분석 스크립트를 내장시킬 수 있고 사용자가 챗봇과 어떻게 상호작용하는지 기록할 수 있다.  

당신이 챗봇을 구축하기로 선택한 플랫폼에 따라, 채널의 일부는 원클릭 배포에 가까울 수 있다.

Digital Assistant를 사용한다면 채널 섹션의 상단에서 당신이 지원하기를 원하는 채널들을 활성화시키기만 하면 됩니다. 각 채널들은 해당 애플리케이션에 대한 Assistant를 인증하고 봇 사용자를 활성화하기 위한 자체적은 명령어를 가질 것이다. 

테스트를 위해 슬랙으로 가서 새 챗봇 사용자를 추가하고 질문하라. 

" 내 PTO는 총 몇 개야?"


축하합니다. 이제 우리는 마지막 단계를 앞두고 있다.  


10단계 : MVP를 론칭하라


이 단계는 분명히 즐거울 것이다. 당신이 해야 할 남은 일은 봇을 시도해 보고 피드백을 전달해줄 몇 명의 베타테스터를 초대하는 것이다. 여기 당신이 고려할 몇 개의 팁이 있다.

 사용 가능한 채널들을 통해 공지하라 예를 들면 당신이 슬랙을 쓰고 있다면 슬랙에서.  

 사전에 설문을 만들고 사용자들이 지속적으로 채울 수 있게 요청하라 그리고 그들이 어떤 것이 잘못된 게 있다면 당신에게 도달할 수 있는 방법을 알게 하라  

 사용자의 아이디어를 모으고 당신의 로드맵으로부터 그들이 다음 론칭에서 보길 가장 원하는 기능을 선택할 수 있게 하라  

당신의 봇에 색다른 이름을 고려하라 (휴가봇, 휴식이) 또는 이름 짓기 이벤트를 열어라

 '디지털  간판'을 만들어라. 당신의 인트라넷(비슷하게 보이는)에 배너처럼 붙일 수 있는. 시각적으로 기쁘고 재미있다면 사람들은 시도할 것이 확실하다.  


이제 당신은 칭찬받을 자격이 있다. 기업 내부 챗봇들은 챗봇의 가장 복잡한 양식이다. 그들은 다양하고 보안이 막혀 있는 시스템 간에 데이터를 전송할 필요가 있어 진행하기 매우 힘든 API들, 권한에 대한 무리수를 가지고 있다. 이 가이드가 도움이 되었길 바란다. 

론칭 이후 원하는 만큼 자주 유즈케이스들을 추가하고 2-10단계를 반복하라.




역자의 의견 : 

직원들을 위한 챗봇을 만드는 기업들이 많이 늘어나고 있다. 여러 프로젝트에서 이와 비슷한 일들이 일어나고 있을 것이다. 하지만 대부분의 일반 직원들은 매우 쉬운 작업일 거라고 그저 막연히 생각한다. 아마 프로젝트를 진행하고 있는 담당자들 조차 시작하기 전에는 몰랐을 수도 있다. (심지어 나도 그랬다. 시범사업을 해보기 전까지는)

아직은 투자 대비 효과가 미미할 수 있으나, 고객만족이 중요한 대고객 서비스도 이렇게 사람을 줄이는 방향으로 나아가는 마당에 직원들에 대한 각종 민원은 더더욱 이런 서비스가 필요하고, 그 시작은 미미하지만 한걸음 한걸음 나아가게 될 것이다. 이런 챗봇을 만드는 담당자들이 어려운 길을 뚜벅뚜벅 걸어가고 있다는 점을 직원들도 조금은 이해하고 함께 테스트해주고, 더 나아질 수 있는 피드백을 많이 해주길 바라본다.  

작가의 이전글 디지털 워크플레이스를 이끄는 주요 기술과 트렌드
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari