프로그래밍/기계학습

GPT-4o 모델 사용하기 - (1) OpenAI 개발환경 설정하기

kugancity 2024. 6. 13. 21:04
반응형

 

 

 

 

 

 

서비스에서 chatgpt 기능을 사용하기 위해서 openai api를 사용하는 과정을 정리해보겠습니다. 

 

개발 환경 : 윈도우 

개발 언어 : python

 

 

OpenAI 모델 확인 

 

 

OpenAI에서 제공하는 API 종류는 아래에서 확인이 가능합니다. 

 

https://platform.openai.com/docs/models/gpt-4o

 

 

 

여러가지 모델중에서 가장 최근에 나온 GPT-4o를 사용하려고합니다. 

 

 

 

 

 

OpenAI API-KEY 발급  

 

우선 api-key를 발급받습니다. 

 

https://platform.openai.com/api-keys

 

 

 

create new secret key 버튼을 클릭해서 새로운 api key를 생성합니다. 

 

 

 

 

 

그리고 환경변수에서 방금 발급받은 key를 설정해줍니다.  (참고: https://platform.openai.com/docs/quickstart)

 

 

윈도우에서는 아래와 같은 방식으로 커멘트 창에서 설정하면 됩니다. 

 

setx OPENAI_API_KEY "your-api-key-here"

 

 

 

echo %OPENAI_API_KEY% 를 하면 설정된 값을 확인할 수 있습니다. 

 

만약 값이 제대로 안나온다면 창을 재실행하거나 pycharm 프로젝트도 다시 실행합니다.

 

 

 

OpenAI 설치

 

 

openai 설치를 진행합니다. 

 

 

pip install --upgrade openai

 

 

샘플 코드를 실행해봅니다. 

 

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."},
    {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}
  ]
)

print(completion.choices[0].message)

 

 

 

만약 요금제가 free라면 아래와 같은 에러가 발생합니다.

 

openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

 

 

 

OpenAI 결제 정보 입력

 

아래 사이트에서 사용 한도를 늘이려면 paid account로 업그레이드 링크를 클릭하고 결제 정보도 입력합니다. 

 

https://platform.openai.com/settings/organization/limits

 

 

 

 

 

결제 정보를 업데이트했더니 이제 정상적으로 샘플 코드 실행 결과가 나온다. 

 

ChatCompletionMessage(content="In the realm of code, a concept dances free,\nWhere functions call themselves in symphony,\nRecursion, a waltz of elegance and grace,\nA loop that mirrors in a mystical embrace.\n\nLike a mirror reflecting its own reflection,\nEach recursive step deepens the connection,\nA journey within nested iterations,\nUnraveling mysteries, breaking limitations.\n\nWith each call, a problem is split in twain,\nSolving smaller parts, until none remain,\nInfinite echoes of the function's call,\nA recursive melody enchanting all.\n\nBut beware, oh coder, in your recursive quest,\nFor a misstep can lead to an infinite jest,\nBase cases as anchors, to break the loop's chain,\nEnsuring recursion's power won't wane.\n\nSo embrace this concept, both simple and grand,\nIn programming's symphony, a cornerstone to stand,\nRecursion, a sonnet of logic and art,\nWeaving complexity with a mathematic heart.", role='assistant', function_call=None, tool_calls=None)

 

 

 

 

 

이제 모델 정보를 변경해서 이어서 포스팅해보겠다. 

 

 

 

 

 

 

 

728x90
반응형