brunch

You can make anything
by writing

C.S.Lewis

by Chris송호연 Jul 03. 2017

30분 안에 챗봇 만들기 1편

챗봇 서버 개발, 어렵지 않아요-

사용해볼 프레임워크 

- Bot Framework


개발 언어 

- Python


Python 라이브러리

- microsoftbotframework


API 서버

- Heroku App


선행 조건(Prerequisites)

- Heroku 계정

- github 계정


실용주의 머신러닝 스터디 그룹 모집공고를 낸 후, 하루만에.. 114분이 지원을 하셨습니다 +_+

https://www.facebook.com/groups/634363263421303/permalink/656386147885681/


공부할 의지가 있으신 분들을 찾아낼 겸, 스터디 예습을 위해 챗봇을 만들라는 과제를 내드렸습니다. 

https://www.facebook.com/groups/634363263421303/permalink/657682621089367/


그런데, 가장 어려워 하시는 부분이 바로 챗봇 서버 API를 만들어서 서버에 올리는 방법이셨습니다.


생각없이 따라하는 방식으로 튜토리얼을 작성해보았습니다.


1. Bot Framework에서 앱 생성하기

Bot Framework 라는 플랫폼으로 메신저 연동을 해보겠습니다 :)


우선 Bot Framework 홈페이지로 갑니다!

https://dev.botframework.com

[My bots] 메뉴를 클릭해서 새로운 봇을 만들어보겠습니다.



[Create a bot] 버튼을 눌러서 새 봇을 생성하겠습니다.



[Register] 버튼을 누릅니다



이름을 설정합니다. 저는 나중에 감성적인 봇을 만들고 싶기 때문에! LovelyBot 이라는 이름으로 봇을 생성해보았습니다.


생성 화면을 밑으로 내리다 보면, Configuration 항목에서 [Create Microsoft App ID and password] 버튼이 나타납니다.


버튼을 클릭합니다.


로그인을 하라고 하니, 로그인을 하겠습니다.


앱 ID 및 암호를 생성하는 화면입니다. [계속하려면 앱 암호 생성] 버튼을 클릭합니다.


버튼을 누르면 암호가 뜰겁니다. 해당 암호는 한번만 노출되기 때문에 안전한 곳에 잘 적어두시기 바랍니다.



그럼 앱 ID와 암호를 갖게 되었습니다.



그럼, 생성된 앱 ID를 위에 빨간 네모 영역 안에 붙여넣습니다. 

Messaging endpoint는 메시지를 받아서 처리하는 API입니다. 우리가 개발해야하는 API 서버죠. 있다가 만든 후에 다시 입력하도록 하겠습니다.


그리고 약관동의 체크박스를 클릭하고 [Register]버튼을 눌러서 봇 생성을 완료합니다.


2. API 서버 만들어서 올리기 

우선, 저의 github의 lovelybot 프로젝트로 갑니다.

https://github.com/chris-chris/lovelybot



우선 각자의 github계정에 저의 lovelybot 코드를 Fork 합니다. 개인 계정으로 복붙한다고 보시면 됩니다. 그래야 수정하고 싶을때 마음대로 수정해서 배포가 가능하니까요!



Fork가 완료되면, 자신의 github 계정에 lovelybot이 추가되셨을 겁니다. 그럼 자신의 계정에 복사된 lovelybot으로 접속한 뒤에 [Deploy to Heroku] 라는 버튼을 클릭합니다.



(만약 Heroku 가입이 안되있다면, 가입하시고, 로그인해야 한다면 로그인하세요.)

그럼, github 프로젝트의 내용을 배포하는 화면이 뜹니다. 여기서 App Name을 원하시는 대로 작성하세요.


저는 echo만 하는 봇을 처음 런칭할 것이기 때문에 lovelybot-echo 라는 이름으로 지었습니다. 그리고 [Deploy] 버튼을 누릅니다.


조금 시간이 지나서 밑으로 내려보면 [Manage App]이라는 버튼이 보입니다. 클릭하세요.



우리가 생성한 서버의 대시보드입니다. 가장 먼저, 우리가 Bot Framework에서 만들었던 앱 ID와 비밀번호를 환경변수에 입력해보겠습니다. [Settings] 메뉴를 클릭해 들어갑니다.



[Reveal Config Vars] 버튼을 클릭해서 환경변수 입력을 시작합니다.


가장 먼저 우리가 만들었던 앱 ID를 입력합니다. 

왼쪽에는 APP_CLIENT_ID 라고 적고 오른쪽에 값을 입력합니다.




두번째로는 APP_CLIENT_SECRET 을 왼쪽에 입력하고 비밀번호를 오른쪽에 입력합니다. [Add] 를 눌러 마저 완료합니다.


그럼 배포를 해볼까요? 



[Deploy] 메뉴를 클릭해서 Deployment method 중에 GitHub 를 클릭합니다.



인증 화면이 뜨면 [Authorize heroku] 버튼을 눌러서 인증시킵니다.


GitHub 비번을 한번 더 입력해줍니다.


검색 창에서 lovelybot 이라고 입력해보겠습니다.


그리고 [Search] 버튼을 누릅니다.



Project를 찾았습니다. [Connect] 버튼을 눌러서 서버와 연동시킵니다.


연동이 되었습니다. 이제 코드가 변경되면 자동으로 서버에 배포되도록 설정해보겠습니다. 간단해요- [Enable Automatic Deploys] 버튼만 클릭하면 됩니다.

그리고 [Deploy Branch] 버튼을 클릭하면 수동으로 배포가 진행됩니다.



배포가 시작되면, 아래에 배포로그가 표시됩니다.



배포가 완료되었습니다.


그러면, 이제 우리가 만든 API 서버의 주소를 확인해보겠습니다.


대시보드 화면 상단 우측의 [Open app] 버튼을 클릭합니다.


Not Found 라는 화면이 뜨지만, 정상입니다. 

위에 주소표시줄에 있는 주소가 바로 여러분의 봇 API 주소입니다.

저 주소를 복사합니다. 제 주소는 https://lovelybot-echo.herokuapp.com/ 이네요-


다시 Bot Framework 페이지로 돌아가서, 우리가 만들었던 LovelyBot의 [Messaging endpoint]의 값을 (내가 만든 서버 주소)/api/messages 로 설정합니다.


저의 경우엔 

https://lovelybot-echo.herokuapp.com/api/messages

입니다.


그리고 맨 밑으로 가서 저장 버튼을 클릭합니다.



그리고 테스트를 해보도록 하겠습니다. 우측 상단의 [Test] 버튼을 클릭해봅니다.


그러면, 테스트를 해볼 수 있는 창이 화면에 뜹니다.


[Type your message] 칸에 hi 라고 입력해보겠습니다.



그럼, 내 말을 따라하는 챗봇의 응답이 화면에 뜨게 됩니다.


엄청 간단한 코드이고, 별 거 아닌 기능이지만 

동작하는 챗봇 API 서버와 챗봇을 연동하도록 가이드해드리는 과정이 짧지만은 않았네요 ㅎㅎ


숙제 제출을 하루 미뤄서 월요일(7/3) 자정까지로 했으니, 숙제 화이팅입니다!


숙제 제출 URL : https://goo.gl/forms/5k88FDr6e1rZatF52


실용주의 머신러닝 스터디에 관심이 있으신 분들은 저희 스터디 그룹 페이스북 그룹에 가입해주세요-
 스터디 내용 뿐만 아니라 머신러닝, 챗봇, 예측에 관련된 실용적인 정보들을 많이 다뤄드릴 예정입니다.



전체 과정을 동영상으로 찍은 2편이 나왔습니다.

https://brunch.co.kr/@chris-song/29


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari