ChatGPT API — ChatGPT 웹에서 복사·붙여넣기하던 시대는 끝났습니다. API를 직접 연결하면 자동화·대량 처리·나만의 AI 서비스 구축이 가능합니다. Python 5줄로 시작하는 방법을 완전 정리합니다.
| 항목 | ChatGPT 웹 | OpenAI API |
|---|---|---|
| 사용 방법 | 브라우저에서 대화 | 프로그램으로 직접 호출 |
| 자동화 | 불가 | 가능 (대량·반복 처리) |
| 비용 | 월정액 ($20/month) | 사용량 기반 (토큰당 과금) |
| 커스터마이징 | 제한적 | 시스템 프롬프트, 파인튜닝 |
| 자체 서비스 통합 | 불가 | 가능 (챗봇, 앱, 웹서비스) |
platform.openai.com 접속 → 회원가입 또는 로그인보안 주의: API 키는 절대 GitHub에 올리거나 공개하지 마세요. 환경 변수(.env)에 저장하는 것이 기본입니다.
# 패키지 설치
pip install openai python-dotenv
# .env 파일 생성 (프로젝트 루트에)
OPENAI_API_KEY=sk-your-api-key-here from openai import OpenAI
client = OpenAI() # OPENAI_API_KEY 환경 변수 자동 읽기
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "안녕하세요! 간단히 소개해 주세요."}]
)
print(response.choices[0].message.content) | 모델 | 성능 | 속도 | 비용 (1M 토큰) | 추천 용도 |
|---|---|---|---|---|
| gpt-4o | 최고 | 빠름 | 입력 $2.50 / 출력 $10 | 복잡한 분석·창작 |
| gpt-4o-mini | 우수 | 매우 빠름 | 입력 $0.15 / 출력 $0.60 | 대량 처리·챗봇 |
| o1-mini | 추론 특화 | 느림 | 입력 $3 / 출력 $12 | 수학·코딩·논리 |
대부분의 용도는 gpt-4o-mini로 충분합니다. gpt-4o 대비 성능은 85% 수준이지만 비용은 1/15입니다.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "당신은 친절한 한국어 번역 전문가입니다."},
{"role": "user", "content": "Please translate: 'Hello, world!'"}
]
) history = [{"role": "system", "content": "당신은 유용한 어시스턴트입니다."}]
def chat(user_message):
history.append({"role": "user", "content": user_message})
response = client.chat.completions.create(model="gpt-4o-mini", messages=history)
assistant_message = response.choices[0].message.content
history.append({"role": "assistant", "content": assistant_message})
return assistant_message stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "긴 글을 써 주세요."}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True) response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "사과 효능 3가지를 JSON으로: [{"효능": ..., "근거": ...}]"}],
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content) response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "안녕하세요"}]
)
usage = response.usage
print(f"입력: {usage.prompt_tokens}, 출력: {usage.completion_tokens}, 합계: {usage.total_tokens}") 토큰은 대략 한글 기준 1.5~2자에 1토큰, 영어는 4글자에 1토큰입니다.
| 작업 | 대략 토큰 수 | gpt-4o-mini 비용 |
|---|---|---|
| 짧은 질문 + 답변 | 200토큰 | 약 $0.0001 (0.14원) |
| 블로그 글 1편 (2000자) | 3000~4000토큰 | 약 $0.002 (2.8원) |
| 하루 100개 처리 | 30만~40만 토큰 | 약 $0.2 (280원) |
| 오류 | 원인 | 해결 |
|---|---|---|
| AuthenticationError | API 키 오류 | 키 재발급 또는 환경변수 확인 |
| RateLimitError | 분당 요청 초과 | time.sleep(1) 후 재시도, 또는 티어 업그레이드 |
| InsufficientQuotaError | 크레딧 부족 | Billing에서 결제 수단 추가·충전 |
| BadRequestError | 컨텍스트 길이 초과 | 메시지 히스토리 줄이기 또는 긴 모델 사용 |
신용점수조회 전에 NICE와 KCB의 무료 조회 주기, 본인인증, 점수 차이를 확인하세요. Credit4U는 신용정보 열람용으로 구분하고…
주택청약종합저축은 매달 얼마를 넣어야 할까요? 국민주택 월 25만원 인정과 민영주택 지역·면적별 예치금은 다른 기준입니다. 2026년…
청년미래적금 2차 신청은 10월 7~16일입니다. 출생연도별 첫 이틀 신청, 2025년 소득·가구 요건, 일반형과 우대형 기여금,…
전세보증보험을 알아본다면 보증상품 이름부터 확인하세요. HUG 전세보증금반환보증의 신청기한, 보증금 상한, 주택가격과 선순위채권, 계약·전입 서류, 보증료와…
금리인하요구권을 신청하기 전 대출 상품의 대상 여부, 신용상태 개선 증빙, 직접 신청과 2026년 마이데이터 자동신청의…
퇴직연금DC형의 회사 부담금과 실제 납입 내역을 먼저 대조하고, 계좌 운용 상품의 손실 가능성·수수료·디폴트옵션 적용 여부를…