Lala's tower

API와 카카오 챗봇 연동

API와 카카오 챗봇 연동

2024-05-26 11:48:21

카카오 챗봇은 건수 제한이 있지만 무료로 이용가능합니다. 고정된 값이 아니라 API로 연동한 글을 답변하는 기능을 구현해보겠습니다. API와 카카오 챗봇을 연동하여 아래와 같이 '안녕' 이라고 입력하면 API가 답변해주는 예시입니다.

API와 카카오 챗봇 연동 결과 화면

Fast API로 리턴하는 API와 카카오 챗봇 파이썬 코드

API로 메시지를 응답하는 예시를 2가지 방법으로 구현하여 보았습니다.

코랩 이용 API서버 만들기 1
구름IDE API서버 만들기 2

이 기능과 카카오 챗봇을 연동하면 다양하게 응용이 가능합니다.

  • 오늘 날씨 어때?

  • 삼성전자 주식 어제 종가가 얼마야?

이 글에서는 단순 텍스트 응답 예제로 연습해보겠습니다.
구름IDE API서버 만들기 2 에서 만든 코드를 조금 수정하면 카카오와 연동할 수 있습니다.

  • 리턴 텍스트를 카카오가 정한 양식에 맞춰줘야합니다.

  • API방식이 GET이 아닌 POST 이어야합니다.

위 내용을 반영한 코드가 아래 입니다.

from flask import Flask, jsonify

app = Flask(__name__)


# 간단한 API 엔드포인트 작성
@app.route('/', methods=['POST'])
def hello_world():
    response = {
        "version": "2.0",
        "template": {
            "outputs": [
                {
                    "simpleText": {
                        "text": "이건 API로 리턴되는 글이야. 반가워~"
                    }
                }
            ]
        }
    }

    return jsonify(response)


# 애플리케이션 실행
if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=80)

API와 카카오 챗봇, 구름IDE에서 실행 후 preview의 URL을 복사

위 코드를 구름IDE에서 실행하고 preview버튼을 누르면 보여지는 URL을 복사해 둡니다.

카카오 챗봇 에서 스킬을 생성합니다. 이때 URL을 구름IDE에서 복사한 URL을 붙여넣기 합니다.

카카오 챗봇에서 시나리오를 생성하고 블록추가를 실행합니다.
블록이름, 사용자 발화를 입력합니다.
블록이름에는 "안녕 블록"이라고 입력해주세요.
사용자 발화에는 '안녕'이라고 입력해주세요.
가운데 화면에 스킬선택에서 위에서 만든 "안녕 블록" 스킬을 선택합니다.
저장을 누릅니다.
오른쪽 상단의 봇 테스트를 누르고 '안녕' 이라고 입력하면 위 화면과 같이 결과가 표시됩니다.