글 수 51

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

조회 수 2204 추천 수 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
제목 글쓴이 날짜 조회 수
Dialogflow로 레스토랑 예약 챗봇 만들기 깊은바다 2018-06-11 1424
Chatfuel 로 고객 피드백을 이메일로 보내는 챗봇 만들기 깊은바다 2018-05-28 220
왓슨 컨버세이션의 digression 기능 - 대화중 벗어나기 깊은바다 2018-05-15 279
코딩없이 페이스북 챗봇 만들기 - Chatfuel과 Dialogflow 사용 깊은바다 2018-05-14 573
카카오톡 챗봇 만들기 - 카카오톡 자동응답API for PHP 깊은바다 2018-04-30 2343
마르코프 체인을 이용한 슬랙 챗봇 [2] 깊은바다 2018-04-23 656
1시간만에 만드는 음성인식 인공지능 챗봇 - Dialogflow 깊은바다 2018-04-21 1195
챗봇 알고리즘의 발전 과정 file 깊은바다 2018-04-20 2081
왓슨 컨버세이션 – 챗봇은 어떻게 대화의 문맥을 기억할까? 깊은바다 2018-04-17 412
왓슨 컨버세이션 서비스를 활용한 회의실 예약 한글 챗봇 깊은바다 2018-04-10 455
Clova Platform 인공지능을 엮는 기술 깊은바다 2018-03-22 603
챗봇 개발 플랫폼 비교 file [1] 깊은바다 2018-03-07 13815
왓슨을 사용한 챗봇 개발 방법 file 깊은바다 2018-03-06 2204
에이브릴을 활용한 챗봇 개발 깊은바다 2018-03-06 301
BotHub로 만든 다양한 챗봇 예제 깊은바다 2017-12-22 1845