카카오톡 챗봇 (1)

2017. 12. 15. 00:37·Dev/Python

Kakao Chatbot x Python flask (1)

Python flask를 이용한 간단한 Kakaotalk chatbot API 서버 만들기 - 준비물편

서론


이 글은 Python의 웹프레임워크 Flask를 바탕으로 카카오톡 챗봇을 만드는 최소한의 과정을 작성하였습니다. 작성한 챗봇을 heroku를 통하여 배포하고 실제로 챗봇이 응답하는 것을 목표로 합니다.

준비물


  • Python 3.x
  • pip
  • Flask
  • heroku CLI

virtualenv Python 가상환경 설정


virtualenv 이 깔려있지 않다면 pip를 이용하여 설치합니다.

$ pip install virtualenv

작업할 폴더를 만들고 그 폴더에서 가상환경을 만듭니다. 버전은 Python3로 설정합니다.

$ mkdir chatbot
$ cd chatbot
$ virtualenv --python=python3 venv

가상환경을 불러옵니다. 이때 Python은 아무것도 깔리지 않고 기존의 쉘과는 독립된 환경을 갖게 됩니다.

$ . ./venv/bin/activate

가상환경에서 벗어나고 싶다면 아래와 같이 deactivate를 실행합니다.

$ deactivate

가상환경의 이점은 다른 환경에서도 프로젝트 진행중 환경설정이 꼬여버리더라도 호스트 환경에 영향을 미치지 않는다는점. 다른 프로젝트에서 작업하는 경우 꼬이지 않도록 함입니다.

이후 프로젝트를 사용할 시에 항상 이 가상환경을 사용하는 것을 가정으로 합니다. 갑자기 모듈이 없다거나 분명 잘 작동했는데 껏다키니까 에러가 발생한다면 가상환경을 먼저 의심하는 것도 좋습니다.

pip 로 필요한 라이브러리 받기


pip를 이용하여 프로젝트에 필요한 패키지를 일괄적으로 다운로드 받습니다. 필요한 패키지의 정보를 requirements.txt에 적습니다.

requirements.txt

aniso8601==1.0.0
Flask-JSON==0.3.2
Flask==0.12.1
gunicorn==19.6.0
Jinja2==2.10
six==1.9.0
Werkzeug==0.13

위 파일을 불러드려 패키지를 일괄적으로 설치합니다.

$ pip install -r requirements.txt

Flask 웹서버 구동


간단한 Flask 앱을 위한 코드를 작성합니다.

app.py

from flask import Flask
app = Flask(__name__)

환경변수에 app.py를 추가하고 flask로 실행합니다.

$ FLASK_APP=app.py
$ flask run
 * Serving Flask app "app"
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

웹브라우저에서http://127.0.0.1:5000/ 로 접속합니다. 아직 보여줄 페이지를 작성하지 않았기 때문에 404 Not Found가 보인다면 정상작동입니다.

이제 ‘Hello world !’ 를 출력하는 페이지를 만듭니다.


app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')              # <-- 추가된 3줄
def index():                 # <
    return "Hello world!"    # <

Flask에서 정의된 @app.route 데코레이터를 이용하여 주소와 함수를 연결해줍니다. (여기서의 app은 3번째 줄에서 정의한 Flask객체 입니다.) @app.route('/')는 http://127.0.0.1:5000/으로 접속하였을때 페이지를 작성하는 코드임을 나타내주는 데코레이터입니다. 함수 index는 페이지를 작성하여 return 합니다.


웹브라우저에서 접속하여 ‘Hello world!’ 가 보이는지 확인합니다.


웹브라우저로 접속


이 글을 따라한 뒤 디렉토리의 구조

chatbot/
|- venv/
|- app.py
|- requirements.txt


반응형

'Dev > Python' 카테고리의 다른 글

[하루 1시간] 실시간 OCR 번역기 만들기  (2) 2023.11.24
[SublimeText] 플러그인 만들기 - URL Decoder  (0) 2022.01.08
Python 접근제어자  (1) 2018.05.28
카카오톡 챗봇 (2)  (2) 2017.12.22
'Dev/Python' 카테고리의 다른 글
  • [하루 1시간] 실시간 OCR 번역기 만들기
  • [SublimeText] 플러그인 만들기 - URL Decoder
  • Python 접근제어자
  • 카카오톡 챗봇 (2)
우르슬라
우르슬라
    반응형
  • 우르슬라
    저장소
    우르슬라
  • 전체
    오늘
    어제
    • 분류 전체보기 (29)
      • AI (1)
      • Dev (17)
        • Python (5)
        • Javascript (3)
        • Tools (5)
        • React (1)
        • 공부 (1)
      • 메타버스2 (2)
      • NFT (0)
      • 판매용 (0)
      • IT 이슈 (2)
      • 금융 이슈 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    speech synthesis markup language
    deepseek
    discord
    javascript
    linyuvo ks54
    NFT
    ssml
    wp engine 차단
    암호화폐차트
    시스템프롬프트
    랭그래프
    크립토트레이딩
    metaverse2
    hd중공업
    가상부동산
    deepseek r1-lite-preview
    오블완
    티스토리챌린지
    agenda47
    메타버스2
    java se programmer
    프롬프트 강화
    prompt enchance
    clarksea
    화면 번역
    아젠다47
    ks54
    linyuvo
    랜드마크
    oracle certified professional
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
우르슬라
카카오톡 챗봇 (1)
상단으로

티스토리툴바