카카오톡 플러스친구 챗봇 만들기 (AWS EC2, Django, Selenium, Fasttext, Python) (2018.04)

식단 정보 제공 카카오톡 챗봇 만들기

 

 

목록

1. AWS EC2 설정
2. virtual env 설정, Django 설치
3. Selenium 설치, 설정
4. pyFasttext 설치
5. 카카오톡 연동

 

 

 

 

[slideshare id=96224389&doc=kakaoshort-180507061718&w=600&h=100]

1. AWS EC2 설정

워드프레스 블로그와 주피터를 함께 돌리던 프리티어 EC2 서버에 카카오 플러스 친구용 세팅 추가

1-1. AWS 가입, EC2 freetier t2.micro 설정

1-2. 탄력적 IP, 고정 아이피 설정

1-3. 보안그룹 설정,  포트 오픈

1-4.  ssh 접속 설정

 

 

2. virtual env 설정, Django 설치

서버에서 다른용도로 사용하는 파이썬 버전과 겹치지 않기 위해 virtualenv로 가상환경 설정을 하고, 장고를 설치했다.

2-1. mkdir Django

2-2. pip install virtual

2-3. pip install django

2-4. cd Django/myvenv/bin
source activate

2-5. Django views.py

views.py 코드 보기

 

 

3. Selenium 설치, 설정

식단 데이터를 얻는 과정에서 로그인과 해당 식당 선택이 필요해 requests, beautifulsoup4조합 대신 selenium을 이용했다.
아래 동영상에서는 크롬 웹드라이버를 사용했고, 실제 서버에서는 phantomJS를 이용해 화면 없이 식단데이터를 크롤링한다.

 

 

3-1. pip install selenium

3-2. web Driver, phantomJS 설치
http://phantomjs.org/download.html

3-3. 식단사이트에서 로그인 후 데이터 크롤링, 식단정보 주소
http://www.samsungwelstory.com/customer/individual/weeklyMenui.jsp

3-4. Selenium 식단정보크롤링.py

식단정보크롤링.py 코드 보기

 

 

4. pyFasttext 설치

카카오톡에서 메뉴형 이외에 텍스트 질답을 주기 위해, 페이스북에서 만든 fasttext를 이용한 파이썬 패키지 pyfasttext를 사용했다.
https://fasttext.cc/

FastText is an open-source, free, lightweight library that allows users to learn text representations and text classifiers. It works on standard, generic hardware. Models can later be reduced in size to even fit on mobile devices.

4-1. pip install pyfasttext
https://github.com/vrasneur/pyfasttext

4-2. [ 뭐냥과 대화하기 ], 실제 사용된 대화의 질답셋과 유사질의 목록
https://docs.google.com/spreadsheets/d/1OdzDUJZRrXSMC3BgFPmSAVnGTSlsRZAIRJLcYVmcvtc/edit?usp=sharing

4-3. pyfasttext 사용 classifier.py

classifier.py 코드 보기

 

 

5. 카카오톡 연동

5-1. 플러스친구 관리자센터에서 플러스친구 만들기
https://center-pf.kakao.com/login

5-2. github API 문서 참고
https://github.com/plusfriend/auto_reply

5-3. 스마트채팅, API형 설정

 

  • 5월부터 무료발송메세지가 10,000건 에서 1,000으로 줄어듬
  • github에서 제공하는 답변형식이 텍스트, 이미지, 링크로 3가지로 단순하다
    몇몇 챗봇은 Carousel slide?, 구름형태의 메뉴등 추가기능을 가지고 있는데 github에선 제공하지 않아 사용할 수 없다
    오픈빌더를 통해서만 이런 답변형태를 제공해줄지 궁금하다. ( 18년 10월 오픈예정, https://kakao.ai/about )
  • 다양한 통계기능 제공, 친구별 그룹화해서 메세지 발송 가능, 간단한 홍보 도구 제공