-
Python으로 chatGPT API 사용하기코딩/파이썬 2023. 4. 16. 15:12반응형
chatGPT를 통해서 자동으로 블로그에 업로드하는 기능을 사이드 프로젝트로 진행해 보려고 한다. chatGPT API에 연결하고, 이용 방법에 대해서 간단히 정리해 보았다.
OpenAI chatGPT API 사용법
1. API key 얻기
아래 openai 사이트에서 우측 상단에서 "view API key" 메뉴에서 API Key를 얻을 수 있다.
api-keys 페이지에서 create new secret key를 실행하면 접근 가능한 key가 생성된다.
2. Python openai 패키지 설치하기
python 에서 openai의 서비스를 이용하기 위해, openai 패키지를 설치해야 합니다.
아래 명령어로 설치할 수 있습니다.pip install openai
Anaconda가 유료화되면서 miniforge를 사용하고 있습니다. Window에서 miniforge cmd로 openai를 설치했습니다. python 콘솔에서 임포트가 잘 되네요.
3. Python chatGPT 에서 호출하기
우선 앞서 설치한 openai를 import 하고, 미리 발급받은 api key를 등록합니다.
import openai # open ai에서 발급받은 api key를 등록합니다 OPENAI_YOUR_KEY = "YOUR GENERATED API KEY" openai.api_key = OPENAI_YOUR_KEY
아래의 코드로 chatGPT의 응답을 유도할 수 있습니다.
# 사용 모델을 설정합니다. chat GPT는 gpt-3.5-turbo를 사용합니다. MODEL = "gpt-3.5-turbo" USER_INPUT_MSG = "chatGPT에 대해 설명해줘." response = openai.ChatCompletion.create( model=MODEL, messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": USER_INPUT_MSG}, {"role": "assistant", "content": "Who's there?"}, ], temperature=0, ) response
파라메타 설명
- model : 오픈 API의 다양한 모델을 의미합니다. chatGPT는 gpt-3.5-turbo를 사용합니다.
- temperature : 0과 2 사이에서 어떤 샘플링 온도를 사용할지 결정할 때, 값이 높을수록 더 무작위적인 출력 결과를 보여줍니다.
- message.role
- system : 시스템의 어떤 역할을 부여합니다. 가령 아래와 같이 chatbot에게 helpful assitant 라는 역할을 부여할 수 있습니다.
- user : 실제 prompt에 입력하는 메시지 역할을 합니다.
- assistant : 반복적으로 질문을 할 경우, 이전 결과의 맥락을 유지하기 위해 이전 응답을 반영할 수 있습니다.
이 경우, chatGPT의 응답을 확인할 수 있습니다.
상세한 응답은 choices 하위 message , content에서 확인 가능합니다.
response['choices'][0]['message']['content']
기타 open ai API 참고 정보
openai의 API에 대한 각종 참고정보는 아래 사이트에서 확인할 수 있습니다.
4. openai API 가격은?
openai api는 모델 별로 토큰 천 개당 가격으로 결정됩니다. 토큰은 일종의 형태소라고 생각하시면 수월합니다. 모델이 언어를 이해하기 위해, 의미적 최소단위로 쪼갠 것을 토큰이라고 합니다. 한글, 영어의 토큰화 방식이 달라서 가격 차이가 발생할 수 있음을 유의하십시요.
위에서 사용한 gpt-3.5-turbo 는 천개 토큰 당 $0.002 를 부과합니다. 최초에 $5의 기본 쿼터를 제공하니, 간단한 테스트는 무료로 진행해 볼 수 있습니다
상세한 가격 정보는 아래 링크에서 확인이 가능합니다.
반응형'코딩 > 파이썬' 카테고리의 다른 글
[Python]람다(lambda) 함수 이해하기 (0) 2023.07.29 [Python] 리스트와 튜플(tuple)의 차이점 이해하기 (0) 2023.07.29 [Python] 초보자를 위한 데코레이터(Decorator) 사용법 (0) 2023.07.29 [Python]List Comprehension을 활용한 코드 최적화 (0) 2023.07.29 chatGPT로 Text 요약하기 (0) 2023.04.16