카카오톡 챗봇 (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 번역기 만들기  (1) 2023.11.24
[SublimeText] 플러그인 만들기 - URL Decoder  (0) 2022.01.08
Python 접근제어자  (0) 2018.05.28
카카오톡 챗봇 (2)  (1) 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바