오픈1.py

OpenAI GPT API 대화 예제


개요

항목 내용
API OpenAI Chat Completions
모델 gpt-3.5-turbo
기능 대화 기록 관리, 맥락 유지

전체 소스 코드

#conda activate llm_env
#pip install openai

MYKEY = "YOUR_OPENAI_API_KEY"

import openai
print(openai.__version__)

from openai import OpenAI
import json

# 클라이언트 초기화 (API 키는 환경 변수에서 자동 로드됨)
client = OpenAI(api_key=MYKEY)

def run_chat_example():
    """챗봇 대화 예제 실행"""
    print("--- 1. 챗봇 대화 예제 시작 ---")

    # 대화 기록 (History)을 저장할 리스트
    messages = [
        {"role": "system", "content": "당신은 친절한 과학 교육 전문가입니다. 답변은 한국어로 해 주세요."},
        {"role": "user", "content": "태양이 빛나는 원리는 무엇인가요? 간단하게 설명해 주세요."}
    ]

    # 첫 번째 요청
    response1 = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages
    )

    # 응답 출력 및 대화 기록에 추가
    answer1 = response1.choices[0].message.content
    print(f"🤖 AI 응답 (1): {answer1}")
    messages.append({"role": "assistant", "content": answer1})

    # 맥락을 이어가는 두 번째 질문
    user_question2 = "그 에너지가 지구까지 오는 데 얼마나 걸리나요?"
    print(f"\n👤 사용자 질문 (2): {user_question2}")
    messages.append({"role": "user", "content": user_question2})

    # 두 번째 요청
    response2 = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages
    )

    # 응답 출력
    answer2 = response2.choices[0].message.content
    print(f"🤖 AI 응답 (2): {answer2}")
    print("--- 챗봇 대화 예제 종료 ---\n")

run_chat_example()

핵심 개념

1. 메시지 구조

messages = [
    {"role": "system", "content": "시스템 지침"},
    {"role": "user", "content": "사용자 질문"},
    {"role": "assistant", "content": "AI 응답"}
]
Role 설명
system AI의 성격/역할 정의 (첫 번째 메시지)
user 사용자 입력
assistant AI 응답 (대화 기록용)

2. API 호출

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=messages
)

answer = response.choices[0].message.content

3. 대화 맥락 유지

# 1. 초기 질문
messages.append({"role": "user", "content": "태양이 빛나는 원리는?"})

# 2. AI 응답 저장
messages.append({"role": "assistant", "content": answer1})

# 3. 후속 질문 (맥락 유지)
messages.append({"role": "user", "content": "그 에너지가 지구까지 얼마나 걸려?"})

이전 대화를 messages에 포함하면 AI가 맥락을 이해!


실행 방법

# 설치
pip install openai

# 실행
python 오픈1.py

실행 예시

--- 1. 챗봇 대화 예제 시작 ---
🤖 AI 응답 (1): 태양은 핵융합 반응을 통해 빛을 냅니다.
태양 중심부에서 수소 원자들이 융합하여 헬륨이 되면서
막대한 에너지가 방출되는데, 이 에너지가 빛과 열로 나타납니다.

👤 사용자 질문 (2): 그 에너지가 지구까지 오는 데 얼마나 걸리나요?
🤖 AI 응답 (2): 태양에서 방출된 빛이 지구에 도달하는 데는
약 8분 20초가 걸립니다. 이는 빛의 속도(초속 약 30만 km)로
태양과 지구 사이의 거리(약 1억 5천만 km)를 이동하는 시간입니다.
--- 챗봇 대화 예제 종료 ---

OpenAI vs Google Gemini 비교

항목 OpenAI Google Gemini
클라이언트 OpenAI() genai.Client()
API 호출 chat.completions.create() models.generate_content()
모델 gpt-3.5-turbo, gpt-4 gemini-2.5-flash
메시지 messages 리스트 contents

API 키 발급

  1. OpenAI Platform 접속
  2. 회원가입 및 로그인
  3. API Keys → Create new secret key
  4. 키 복사하여 사용