글 수 55

왓슨을 사용한 챗봇 개발 방법

조회 수 2863 추천 수 0 2018.03.06 06:42:34


왓슨 컨버세이션(Watson Conversation)은 IBM에서 제공하는 챗봇 개발 서비스입니다. 이를 사용해서 간단한 피자주문 챗봇을 만들어 보겠습니다. 

 

 

 

워크스페이스 추가

 

watson01.png

 

왓슨에서 챗봇을 개발하는 기본 프로젝트를 말합니다. 'Create' 버튼을 눌러 새로운 워크스페이스를 생성합니다.

 

 

 

watson02.png

 

'피자챗봇'이란 이름으로 설정하였습니다. 아래 'Language'에서 한국어를 선택합니다.

 

 

 

인텐트(Intent) 설정

 

watson03.png

 

인텐트는 문장의 의도를 나타냅니다. 'Add intect' 버튼을 눌러 새로운 인텐트를 추가합니다.

 

 

 

watson04.png

 

'주문'이란 인텐트에 여러가지 예제 문장들을 추가합니다.

 

 

 

엔터티(Entity) 설정

 

watson05.png

 

엔터티는 문장에서 사용되는 각각의 개체를 의미합니다. '피자종류'라는 엔터티에 '불고기/페퍼로니/포테이토' 세 개의 피자를 추가하였습니다. 또한 시간, 날짜, 개수, 화폐 등은 기본적으로 지원되는 시스템 엔터티입니다.

 

 

 

다이얼로그(Dialog) 설정

 

watson06.png

 

왓슨의 가장 큰 장점 중 하나로 대화의 흐름을 웹페이지에서 쉽게 설정할 수 있습니다.

 

 

 

watson07.png

 

'주문하기'란 다이어로그를 추가하였습니다. 'If Bot recognizes'는 입력된 문장에서 '#주문'이란 인텐트가 있으면 아래와 같이 실행한다는 것을 말합니다. 대답에서 '@피자종류'는 현재 문장에 있는 엔터티를 참조합니다.

 

 

 

테스트 실행

 

3d5d52d4561a6902bbe834fb082cadd3.png

 

웹페이지의 오른쪽에 있는 'Try it' 버튼으로 테스트를 해볼 수 있습니다. 문장을 입력하면 미리 설정된 대답과 함께 각각 일치하는 인텐트와 엔터티를 보여줍니다.

 

 

 

컨텍스트(Context) 설정

 

왓슨의 또 다른 장점으로 웹사이트에서 바로 변수를 설정하여 조건 검사나 대답 표시에 사용할 수 있다는 것입니다. 프로그래머가 모든 작업을 처리하지 않고 기획자가 어느정도 구현을 분담할 수 있어 개발이 더 용이할 듯 합니다.

 

 

 

watson09.png

 

다이얼로그에서 오른쪽 아이콘을 클릭하여 JSON 에디터를 실행합니다.

 

 

 

watson10.png

 

'환영인사' 다이얼로그에서 위와 같이 'context'에 'isOrdered'를 'false'로 설정합니다. 챗봇이 처음 실행되었을때 변수를 초기화하는 부분입니다.

 

 

 

watson11.png

 

'주문하기' 다이얼로그에서 'isOrdered'를 'true'로 설정합니다. 그리고 조건 검사에 '$isOrdered == false'를 추가합니다. 

 

 

 

watson12.png

 

'주문했음' 다이얼로그를 새로 생성합니다. '$isOrdered == true'일때만 실행되도록 합니다.

 

 

 

watson13.png

 

처음 주문할 때에 'isOrdered' 컨텍스트를 true로 변경합니다. 그리고 다시 주문을 하면 조건을 검사하여 주문이 안되게 막을 수 있습니다.

 

 

 

클라이언트 애플리케이션 연동

 

사용자에게서 피자를 주문받았으면 자체 서버에 그 정보를 보내서 실제로 피자를 주문하는 처리를 해주어야 합니다. 클라이언트 애플리케이션은 외부에 별도로 있는 이런 프로그램을 말합니다. 또한 카카오톡이나 페이스북에서 입력된 문장을 받아 왓슨에 넘기고 그 대답을 다시 메신저로 보내주는 기능도 같이 수행합니다.

 

 

 

watson14.png

 

다이얼로그의 컨텍스트에서 'action: command' 항목을 추가하여 'executeOrder'라는 명령어를 설정할 수 있습니다.

 

 

 

watson15.png

 

왓슨에서 Node.js나 파이썬 같은 언어를 위한 SDK 라이브러리를 제공합니다. 이를 설치하면 클라이언트 애플리케이션과 왓슨 서버를 쉽게 연동할 수 있습니다. 위의 코드에서 'response.output.action'이 다이얼로그에서 설정한 action 명령어를 검사하는 부분입니다.

 

보다 자세한 내용은 아래 링크에서 확인하시기 바랍니다.

-> https://console.bluemix.net/docs/services/conversation/develop-app.html

 

 

 

< 챗봇 개발자 모임 >

- 페이스북 그룹에 가입하시면 챗봇에 대한 최신 정보를 쉽게 받으실 수 있습니다.

https://www.facebook.com/groups/ChatbotDevKR/

List of Articles
제목 글쓴이 날짜 조회 수
챗봇 개발 플랫폼 비교 file [1] 깊은바다 2018-03-07 16488
왓슨을 사용한 챗봇 개발 방법 file 깊은바다 2018-03-06 2863
에이브릴을 활용한 챗봇 개발 깊은바다 2018-03-06 343
BotHub로 만든 다양한 챗봇 예제 깊은바다 2017-12-22 2077
Python으로 챗봇 만들어보기 - 영화 정보 / 음료 주문 깊은바다 2017-12-22 6507
자바 스프링으로 카카오톡 챗봇 만들기 깊은바다 2017-11-26 6141
Api.ai로 Telegram 연동 챗봇 만들기 깊은바다 2017-10-02 3857
Chatfuel로 코딩없이 타로 챗봇 만들기 file 깊은바다 2017-09-26 3434
MS의 Bot Framework로 30분 안에 챗봇 만들기 깊은바다 2017-09-17 1319
Watson으로 쉽게 만드는 카카오톡 ChatBot 깊은바다 2017-08-31 1692
Node.js로 LINE Bot 만들기 깊은바다 2017-07-10 1389
Node.js로 카카오봇 만들기 깊은바다 2017-06-20 3706
AWS Lambda를 활용한 아마존 알렉사 스킬 개발 방법 깊은바다 2017-05-26 690
Api.ai로 코딩없이 챗봇만들기 깊은바다 2017-05-25 2143
Fluenty.ai 챗봇 빌더 사용기 file [2] 깊은바다 2017-05-14 1889