Categories: 미분류

ChatGPT API 사용법 완전 가이드 2026 — Python 연동·비용 계산·실전 예제 10가지

ChatGPT API — ChatGPT 웹에서 복사·붙여넣기하던 시대는 끝났습니다. API를 직접 연결하면 자동화·대량 처리·나만의 AI 서비스 구축이 가능합니다. Python 5줄로 시작하는 방법을 완전 정리합니다.

ChatGPT API란 — 웹 vs API 차이

항목 ChatGPT 웹 OpenAI API
사용 방법 브라우저에서 대화 프로그램으로 직접 호출
자동화 불가 가능 (대량·반복 처리)
비용 월정액 ($20/month) 사용량 기반 (토큰당 과금)
커스터마이징 제한적 시스템 프롬프트, 파인튜닝
자체 서비스 통합 불가 가능 (챗봇, 앱, 웹서비스)

STEP 1. OpenAI API 키 발급

  1. platform.openai.com 접속 → 회원가입 또는 로그인
  2. 우측 상단 프로필 → API keys 클릭
  3. Create new secret key → 키 이름 입력 → Create secret key
  4. 생성된 키를 복사해 안전한 곳에 저장 (다시 볼 수 없음)
  5. 결제 수단 등록: Settings → Billing → Add payment method

보안 주의: API 키는 절대 GitHub에 올리거나 공개하지 마세요. 환경 변수(.env)에 저장하는 것이 기본입니다.

STEP 2. Python 환경 설정

# 패키지 설치
pip install openai python-dotenv

# .env 파일 생성 (프로젝트 루트에)
OPENAI_API_KEY=sk-your-api-key-here

STEP 3. 첫 번째 API 호출 — 5줄 코드

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)

모델 선택 가이드 — gpt-4o vs gpt-4o-mini

모델 성능 속도 비용 (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입니다.

실전 예제 — 자주 쓰는 패턴 5가지

예제 1. 시스템 프롬프트로 역할 고정

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "당신은 친절한 한국어 번역 전문가입니다."},
        {"role": "user", "content": "Please translate: 'Hello, world!'"}
    ]
)

예제 2. 대화 히스토리 유지

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

예제 3. 스트리밍 출력 (타이핑 효과)

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)

예제 4. JSON 구조화 출력

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)

예제 5. 토큰 사용량 확인

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 컨텍스트 길이 초과 메시지 히스토리 줄이기 또는 긴 모델 사용
hosaea7

Share
Published by
hosaea7

Recent Posts

신용점수조회 무료 경로 3곳: NICE·KCB 점수와 Credit4U 기록 구분

신용점수조회 전에 NICE와 KCB의 무료 조회 주기, 본인인증, 점수 차이를 확인하세요. Credit4U는 신용정보 열람용으로 구분하고…

1개월 ago

주택청약종합저축 가입 전 점검표: 월 25만원 인정·민영 예치금 구분

주택청약종합저축은 매달 얼마를 넣어야 할까요? 국민주택 월 25만원 인정과 민영주택 지역·면적별 예치금은 다른 기준입니다. 2026년…

1개월 ago

청년미래적금 10월 2차 신청: 날짜·소득·갈아타기 7가지 확인

청년미래적금 2차 신청은 10월 7~16일입니다. 출생연도별 첫 이틀 신청, 2025년 소득·가구 요건, 일반형과 우대형 기여금,…

1개월 ago

전세보증보험 가입 전 7가지: HUG 신청기한·선순위 확인

전세보증보험을 알아본다면 보증상품 이름부터 확인하세요. HUG 전세보증금반환보증의 신청기한, 보증금 상한, 주택가격과 선순위채권, 계약·전입 서류, 보증료와…

1개월 ago

금리인하요구권 신청 6단계: 신용개선 증빙·자동신청·불수용 사유 확인

금리인하요구권을 신청하기 전 대출 상품의 대상 여부, 신용상태 개선 증빙, 직접 신청과 2026년 마이데이터 자동신청의…

1개월 ago

퇴직연금DC형 부담금·운용 점검: 회사 납입액부터 디폴트옵션까지

퇴직연금DC형의 회사 부담금과 실제 납입 내역을 먼저 대조하고, 계좌 운용 상품의 손실 가능성·수수료·디폴트옵션 적용 여부를…

1개월 ago