openai를 활용한 웹/앱을 만들기 위해선 첫번째로 API키를 발급해야 한다.
1. openai 가입
https://platform.openai.com/chat
오픈ai에 가입한 후, 상단 "create project"를 통해서 새로운 프로젝트를 생성한다

좌측 api key 에 들어가면 호면 우측 상단에 +create new secrete key를 누른다.
누르면 아래 화면처럼 새로운 키를 만들수 있다.
내용 입력후 create를 누르면 api 키가 생성되는데, 사용자 본인이라 하더라도
이 창을 나가면 다시는 api키를 확인할 수 없다!
그러니 이때 발급된 키를 메모장 등에 잘 저장해 놓아야한다.

이제 api 키를 이용해서 프로젝트에 ai를 적용시킬 수 있다.
이때 git을 이용하거나 프로젝트를 업로드 할 예정이라면
반드시 gitignore파일에 키를 보관해야 한다.
본인 api키는 토큰 사용 및 요금에 직결된 주요 보완사항이기 때문에
외부에 공개해선 안된다!
그래서 .env파일을 생성하여 여기에 open_api_key를 보관하고,
git ignore에는 .env 파일을 등록해 놓으면 깃 추적을 피할 수 있다.

openai를 가입하자마자 실습을 하였다면 무료 제공 토큰이 있다.
하지만 본인은 이전에 연습을 해보느라 가입 후 6개월이 지나서 무료 사용 기간이 끝났다.
이를 위해서 실습을 위해 5$짜리 요금제를 구입하여 실습중이다.
실습후 usage는 바로 적용되지 않고 적용되는데 반나절 정도 걸린다.

| 모델 | 입력 토큰 단가 (1,000 토큰당) | 출력 토큰 단가 (1,000 토큰당) | 맥락 길이 / 특징 | 비고 |
|---|---|---|---|---|
| gpt-3.5-turbo | $0.0010 | $0.0020 | 4K (일부 16K) | 저렴, 기본 실습용 |
| gpt-3.5-turbo-16k | $0.0030 | $0.0060 | 16K | 긴 프롬프트에 유리 |
| GPT-4 (8K) | $0.0300 | $0.0600 | 8K | 고성능 일반 모델 |
| GPT-4 (32K) | $0.0600 | $0.1200 | 32K | 긴 맥락 버전 |
| 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$로 실습에 충분하다.
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. 응답 제어 옵션 (선택)