본문 바로가기

파이썬

파이썬으로 ChatGPT와 대화하는 모바일 앱 만들어보기 2 [Python, OpenAI, Kivy, Cursor IDE]

반응형

OpenAI Key를 발급받아 코드 내에서 ChatGPT와 소통해보는 코드를 짜보자

 

GPT 3.5
준비물: 5$의 결제태도 (ㅋㅋ 진짜임)

터미널에 실행하는 명령어일 경우
> 명령어
로 작성함.

 

 

https://openai.com/

Open AI 홈페이지에 접속해 회원가입 및 로그인을 진행한다.

 

우측 상단에서 Log in 클릭

가입 후 로그인

API 클릭

그런데, 다음 페이지가 접속이 안되고 하얀 화면에 무한 로딩이 될 경우가 있다.
왜 그런진 모르겠으나 서버가 불안정한지 가끔가다 https://platform.openai.com/ 페이지가 안 들어가질 때가 있는데 그냥 딴 짓 하면서 한 번씩 새로고침을 해보면 언젠가 나온다...........................

Personal 위치에 마우스를 올리면 메뉴가 나온다. 차례대로 들어가 Add Payment method를 해주자.

Chat GPT를 사용하려면 신용카드 등록을 해야한다. 아니면 코드에서 API Key를 입력해도 GPT 요청이 불가하다.
그리고 최소 5$의 결제가 필요하다.

API Keys 메뉴로 들어가 Create new secret key 버튼을 눌러준다. 이름은 본인이 식별가능한 것으로 아무거나 지어도 된다.

 

이거 까먹으면 다신 볼 수 없으니 잘 적어두자.

아니면 혹시라도 코드 상에서 지워졌을 때마다 재발급해야 함.

 

이제 Curosr IDE 로 돌아가보자.

 

하단 터미널에서 필요한 라이브러리들을 설치해야 하는데 파이썬에서는 pip라는 라이브러리 관리 툴을 사용한다.

혹시나 터미널이 보이지 않으면 Ctrl+Shift+`를 누른다.

> pip install python-dotenv

> pip install openai

 

그리고 우선 main.py 파일과 같은 뎁스로 .env 파일을 생성한다.

 

오른쪽 .env 파일에 OPEN_API_KEY={위에서 발급받아 저장해둔 Secret Key 값}을 입력해주고 main.py 파일로 돌아가자

해당 파일에 따로 지정해두는 이유는 나중에 git을 연동했을 때 실수로라도 업로드하지 않도록 하기 위해서다.

실수든 뭐든 공개 레포지토리에 올리게 되면 당신이 결제한 크레딧은 눈 깜짝할 새 소진되고 충전해도 계속 사라질거다. 남들이 봇으로 수집한 키를 제 맘대로 써버리기 때문이니 주의하자

 

main.py 파일 내용을 모두 지우고 아래 링크를 참고해 코드를 작성해보자.

https://platform.openai.com/docs/quickstart?context=python

from openai import OpenAI
from dotenv import load_dotenv
import os

#env 정보 불러오기
load_dotenv()
#env에서 "OPENAI_API_KEY"를 가져와 api_key 변수를 넘겨 클라이언트 생성(gpt)
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

#메서드 정의 (함수 정의)
def chat():
	#인삿말
    print("무엇을 도와드릴까요?");
    """ 
    계속해서 대화를 주고받아야 하기 때문에 무한 반복
    while {조건} -> 조건이 True일 때 반복
    example)
        number = 1
        while number == 1:
            //계속 반복
        -------------------------
    example2)
        number = 0
        while number < 5:
            // number 가 4가 될때까지만 반복, 5가 되는 순간 여기까지 진행되지 않음
            number = number+1        
    """
    while True:
        #input(메세지) -> 사용자의 입력을 받는 함수, 괄호안에 메세지를 입력할 경우 문장 처음에 노출되고 리턴값은 사용자의 입력값이 됨
        question = input("Q: ")

        #위에서 생성한 클라이언트를 통해 gpt에게 요청을 보냄 https://platform.openai.com/docs/api-reference/chat/create
        #model = gpt의 모델 ID
        #messages = 요청을 보내기 위한 메세지 오브젝트, role -> user/assistant/system/tool, content -> 질문 내용
        completion = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": question}]
        )

        #답변 문자열 추출
        answer = completion.choices[0].message.content

        #문자열 앞에 f를 붙일 경우 {} 를 이용해 변수에 들어있는 값을 출력할 수 있다.
        print(f"A: {answer}")

#함수실행
chat();

 

그리고 코드를 실행하면 아래처럼 gpt와 대화할 수 있다. (크레딧 사용됨)

진짜 Windows 환경에서 iOS를 만들 수 있다고..? (나도 아직 안 해봐서 모름)

 

 

다음 포스팅에서는 Kivy를 사용해 카카오톡같은 채팅 UI를 만들어 GPT와 대화해보는 것을 해보자

 

다음 포스팅 (3탄)

2024.01.19 - [파이썬] - 파이썬으로 ChatGPT와 대화하는 모바일 앱 만들어보기 3 [Python, OpenAI, Kivy, Cursor IDE]

이전 포스팅 (1탄)

2024.01.16 - [파이썬] - 파이썬으로 ChatGPT와 대화하는 모바일 앱 만들어보기 1 [Python, OpenAI, Kivy, Cursor IDE]