openai key 발급

사우나도깨비·2025년 9월 28일

개발공부

목록 보기
1/10

openAPI 적용하기

openai를 활용한 웹/앱을 만들기 위해선 첫번째로 API키를 발급해야 한다.

1. openai 가입
https://platform.openai.com/chat
오픈ai에 가입한 후, 상단 "create project"를 통해서 새로운 프로젝트를 생성한다

2. api_key 생성

좌측 api key 에 들어가면 호면 우측 상단에 +create new secrete key를 누른다.
누르면 아래 화면처럼 새로운 키를 만들수 있다.
내용 입력후 create를 누르면 api 키가 생성되는데, 사용자 본인이라 하더라도

이 창을 나가면 다시는 api키를 확인할 수 없다!

그러니 이때 발급된 키를 메모장 등에 잘 저장해 놓아야한다.

3. api키 저장 위치

이제 api 키를 이용해서 프로젝트에 ai를 적용시킬 수 있다.
이때 git을 이용하거나 프로젝트를 업로드 할 예정이라면
반드시 gitignore파일에 키를 보관해야 한다.

본인 api키는 토큰 사용 및 요금에 직결된 주요 보완사항이기 때문에
외부에 공개해선 안된다!


그래서 .env파일을 생성하여 여기에 open_api_key를 보관하고,
git ignore에는 .env 파일을 등록해 놓으면 깃 추적을 피할 수 있다.

4. 요금 및 토큰

openai를 가입하자마자 실습을 하였다면 무료 제공 토큰이 있다.
하지만 본인은 이전에 연습을 해보느라 가입 후 6개월이 지나서 무료 사용 기간이 끝났다.

이를 위해서 실습을 위해 5$짜리 요금제를 구입하여 실습중이다.
실습후 usage는 바로 적용되지 않고 적용되는데 반나절 정도 걸린다.

OpenAI 주요 모델별 토큰 단가 정리

모델입력 토큰 단가 (1,000 토큰당)출력 토큰 단가 (1,000 토큰당)맥락 길이 / 특징비고
gpt-3.5-turbo$0.0010$0.00204K (일부 16K)저렴, 기본 실습용
gpt-3.5-turbo-16k$0.0030$0.006016K긴 프롬프트에 유리
GPT-4 (8K)$0.0300$0.06008K고성능 일반 모델
GPT-4 (32K)$0.0600$0.120032K긴 맥락 버전
GPT-5$0.00125$0.0100~400K최신 대형 모델
GPT-5 mini$0.00025$0.0020경량형빠르고 저렴
o1-pro (reasoning)$0.1500$0.6000고성능 추론비쌈, 특수 목적
GPT-4o mini$0.00015$0.00060경량 멀티모달2024 공개, 초저가

지금 간단히 시(poem)생성, 번역 등을 실습하고 있어
3.5-turbo 모델을 사용하고 있는데, 이 모델은 토큰 사용량이 매우 적어 5$로 실습에 충분하다.

5. 실습 코드

from openai import OpenAI
from dotenv import load_dotenv 
#load_dotenv()가 .env 파일의 내용을 시스템에 올려놓음
import os

load_dotenv()

client = OpenAI(
  api_key = os.environ.get("API_KEY")
)

response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
      {"role": "system", "content": "You will be provided with a sentence in English, and your task is to translate it into Korean"},{
          "role": "user", "content": "My name is Jane. What is your name?"
      }

  ],
  temperature=0.7, # 창의성 수준
  max_tokens=64, # 응답의 최대 길이
  top_p=1 # 생성된 텍스트의 다양성 조정
)

텍스트 응답 실습 코드는 간단하게,

response = client.chat.completions.create()

1. 사용할 AI 모델 지정 (필수)
model="사용할 모델 이름"

2. 대화 내용 전달 (필수)
messages=[
{"role": "system", "content": "AI의 역할이나 지시사항을 설정합니다."},
{"role": "user", "content": "사용자가 AI에게 전달할 질문이나 요청입니다."},
{"role": "assistant", "content": "이전 대화에서 AI가 했던 답변입니다. (대화 맥락 유지용)"}
],

3. 응답 제어 옵션 (선택)

0개의 댓글