Chat GPT API란 구글 클라우드 플랫폼(GCP) 기반 오픈소스 대화형 AI 엔진입니다. 이 Chat GPT API를 이용하면 챗봇을 쉽게 구현할 수 있고, 다양한 서비스와의 연동 또한 가능한데요. 이번 시간에는 카카오톡과 네이버톡톡 등 채팅서비스와 연동해서 쓸 수 있는 방법을 알아보겠습니다.
카카오톡/네이버톡톡과의 연동방법은 어떻게 되나요?
우선 아래 링크 사이트에 접속하셔서 자신의 운영체제에 맞는 버전을 다운로드 해주세요. https://chatgpt.org/downloads-and-deployment/
다운로드 받은 파일을 실행시키면 설치파일이 나오는데 이를 더블클릭 해주시면 됩니다.
설치과정 중에 나오는 안내문구들을 꼼꼼히 읽어보시고 진행해주세요.
모든 설치가 완료되면 위와 같은 화면이 나옵니다. 이제 본격적으로 개발환경을 세팅해보겠습니다.
개발환경 구축 1단계 - Google Cloud Platform 콘솔 로그인
콘솔화면 우측 상단에 위치한 '로그인' 버튼을 클릭 후 계정정보를 입력해주세요.
개발환경 구축 2단계 - Python SDK 설치
Python SDK 를 설치해야 하는데요. 저는 이미 설치되어 있어서 해당 창이 나오지 않지만, 처음 하시는 분들은 아마 다음과 같은 팝업창이 뜰겁니다.
위 사진처럼 Install Now 버튼을 눌러주면 알아서 설치가 되니 걱정 안하셔도 됩니다.
개발환경 구축 3단계 - 프로젝트 생성
프로젝트 이름을 설정하시고 Next 버튼을 눌러주세요.
다음으로는 어떤 언어로 개발할지 선택하게 되는데요. 저희는 python 을 활용할 예정이니 그대로 두고 Finish 버튼을 눌러줍니다.
이제 환경설정은 모두 끝났습니다. 코드를 작성하러 가볼까요?
코드작성 및 테스트
해당 코드는 제가 실제로 만든 샘플코드로, 여러분들이 직접 수정하시면서 공부하시는걸 추천드립니다.
import os import sys from chatgpt.client import SessionClient client = SessionClient() # 세션클라이언트 객체생성
from chatgpt.models import QAccount model = QAccount(name="test_account", age=20, password="1234") # 모델객체 생성
def create_user(id): user = client.create_user(id) # 유저생성
if __name__ == "__main__": app = QApplication(sys.argv) exec_app()
실행결과
잘 동작하네요! 하지만 아직 끝난게 아닙니다. 우리는 여러가지 모듈을 연결시켜줘야 합니다.
모듈연결
먼저 models 폴더 밑에있는 qa_data 라는 데이터프레임을 만들어봅시다.
qa_data = data.frame({"username": name, "age": age, "password": password})
그리고 다시한번 console 창을 열어보세요.
console.log(qa_data)
데이터프레임 형태로 잘 출력되는것을 확인할 수 있습니다.
이번엔 다른 함수를 호출해볼게요.
function get_reply(message): return message.text
get_reply("안녕하세요~")
메세지박스형태로 안녕하세요~ 라고 정상적으로 출력됩니다.
그럼 마지막으로 채팅방에서도 메세지를 받아볼 수 있게 해보도록 하겠습니다.
채팅방 리스트 가져오기
var ctx = require("../context");
ctx.listen(8081)
execute_application(app)
cursor.push(new Cursor())
setTimeout(() => { try: var _temp = cursor.fetchAll(); for (let i = 0; i < _temp.length; i++) { if (_temp
=== "") continue; else { print(_temp
); } }, 1000)
for문을 돌면서 현재 채팅방 목록을 가져와봤습니다.
가져온 채팅방목록을 가지고 메시지를 보내도록 해보죠.
msg = "메시지내용" + str(len(QAccount)) + "\n" + msg.substring(0, 10) + "\n" + msg.substring(10, 60) + "\n" + msg.substring(60, 90) + "\n" + msg.substring(90, 120) + "\n" + msg.substring(120, 150) + "\n" + msg.substring(150, 180) + "\n" + msg.substring(180, 210) + "\n" + msg.substring(210, 240) + "\n" + msg.substring(240, 270) + "\n" + msg.substring(270, 300) + "\n" + msg.substring(300, 330) + "\n" + msg.substring(330, 360) + "\n" + msg.substring(360, 390) + "\n" + msg.substring(390, 410) + "\n" + msg.substring(410, 420) + "\n" + msg.substring(420, 450) + "\n" + msg.substring(450, 460) + "\n" + msg.substring(460, 470) + "\n" + msg.substring(470, 480) + "\n" + msg.substring(480, 490) + "\n" + msg.substring(490, 500) + "\n" + msg.substring(500, 510) + "\n" + msg.substring(510, 520) + "\n" + msg.substring(520, 530) + "\n" + msg.substring(530,