OpenAI Key를 발급받아 코드 내에서 ChatGPT와 소통해보는 코드를 짜보자
GPT 3.5
준비물: 5$의 결제태도 (ㅋㅋ 진짜임)
터미널에 실행하는 명령어일 경우
> 명령어
로 작성함.
Open AI 홈페이지에 접속해 회원가입 및 로그인을 진행한다.
▼
▼
그런데, 다음 페이지가 접속이 안되고 하얀 화면에 무한 로딩이 될 경우가 있다.
왜 그런진 모르겠으나 서버가 불안정한지 가끔가다 https://platform.openai.com/ 페이지가 안 들어가질 때가 있는데 그냥 딴 짓 하면서 한 번씩 새로고침을 해보면 언젠가 나온다...........................
▼
Chat GPT를 사용하려면 신용카드 등록을 해야한다. 아니면 코드에서 API Key를 입력해도 GPT 요청이 불가하다.
그리고 최소 5$의 결제가 필요하다.
▼
▼
이거 까먹으면 다신 볼 수 없으니 잘 적어두자.
아니면 혹시라도 코드 상에서 지워졌을 때마다 재발급해야 함.
이제 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와 대화할 수 있다. (크레딧 사용됨)
다음 포스팅에서는 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]