OpenAI & GPT API 정리

양진모·2025년 4월 10일

1. API vs Open API

항목API (Application Programming Interface)Open API (공개 API)
정의소프트웨어 간 상호작용을 가능하게 하는 인터페이스누구나 접근할 수 있도록 공개된 API
접근성제한적일 수 있음 (내부 API, 유료 API 등 포함)일반적으로 무료로 공개되어 있으며, 문서도 제공됨
사용 대상내부 개발자 또는 제휴된 외부 개발자모든 외부 개발자 (회원가입 또는 인증 필요할 수 있음)
예시회사 내부 결제 시스템 API, 사내 사용자 관리 API 등카카오 지도 API, 네이버 검색 API, 공공데이터 포털 API 등
문서화내부 문서 또는 일부 문서만 외부 공유문서가 잘 갖춰져 있어 누구나 쉽게 사용 가능
목적내부 시스템 통합, 특정 파트너 제공 등오픈 생태계 확장, 외부 개발자 유입 등

2. OpenAI API와 사용법

OpenAI API는 ChatGPT, DALL·E, Whisper 같은 AI 기능을 외부 앱/웹에 연동할 수 있도록 제공하는 API이다.

대표 기능

  • GPT: 텍스트 생성, 요약, 번역, 코드 작성 등
  • DALL·E: 텍스트 → 이미지 생성
  • Whisper: 음성 → 텍스트 변환
  • Embedding: 텍스트 → 벡터 (검색/유사도 분석)

사용 절차

  1. https://platform.openai.com 접속
  2. 로그인/가입 후 API Key 발급
  3. 파이썬 예제:
import openai
openai.api_key = "sk-xxx"

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "한국의 수도는 어디야?"}
    ]
)

print(response['choices'][0]['message']['content'])

3. GPT Prompt - Message Role

역할 (role)설명
systemGPT의 성격이나 행동 방식을 설정 (예: 친절한 튜터)
user사용자의 질문이나 요청 메시지
assistantGPT가 이전에 응답한 내용 (대화 흐름 유지에 필요)

예시

messages = [
    {"role": "system", "content": "You are a math tutor."},
    {"role": "user", "content": "피타고라스 정리를 설명해줘."}
]

Developer Prompt / User Prompt / Assistant Prompt

이름역할 (role)설명
Developer Prompt (System Prompt)"system"GPT의 성격, 말투, 행동 방식 설정
User Prompt"user"사용자의 입력 내용
Assistant Prompt"assistant"GPT의 응답 (이전 대화 포함용)

흐름으로 이해하기

예시 대화 흐름 (역할 기반)

[System]   🧑‍💻: 넌 친절한 역사 선생님이야.
[User]     🙋‍♀️: 로마 제국이 언제 멸망했어?
[Assistant]🤖: 서기 476년에 서로마 제국이 멸망했어요.
[User]     🙋‍♀️: 그 이후에 무슨 일이 있었어?

messages = [
    {"role": "system", "content": "You are a kind and knowledgeable history teacher."},
    {"role": "user", "content": "When did the Roman Empire fall?"},
    {"role": "assistant", "content": "The Western Roman Empire fell in 476 AD."},
    {"role": "user", "content": "What happened after that?"}
]

이렇게 하면 GPT는 다음과 같이 동작한다 :

자신이 "역사 선생님"이라는 역할임을 인식하고

서로마 제국이 멸망했다는 이전 대화 내용을 기억하며

자연스럽게 다음 질문에 이어지는 답변을 생성한다.


4. GPT 챗봇

GPT 챗봇의 기본 개념

GPT는 Generative Pre-trained Transformer의 약자로,
자연어 처리(NLP) 분야에서 주로 사용되는 딥러닝 모델
GPT는 대량의 텍스트 데이터를 학습하여, 사용자의 질문이나 입력에 대해 자연스러운 응답을 생성

GPT 챗봇의 동작 원리

  1. Pre-trained (사전 학습)
    다양한 텍스트로 미리 학습하여 언어 구조와 문맥을 이해함

  2. Fine-tuning (세부 조정)
    특정 목적(고객지원 등)에 맞게 맞춤 학습 가능

  3. Generation (응답 생성)
    사용자 입력을 받아 GPT가 문맥에 맞는 답변 생성

GPT 챗봇의 주요 구성 요소

1. Prompt (프롬프트)

  • GPT에게 지시를 내리는 텍스트
  • 챗봇의 역할, 말투, 행동 등을 설정

2. Messages (메시지)

GPT는 대화를 다음 3가지 역할로 구분함:

역할설명
system챗봇의 성격 및 역할 설정
user사용자의 질문 또는 요청
assistantGPT의 응답 내용 (기억 유지용)

3. API (응용 프로그램 인터페이스)

  • GPT를 외부 앱이나 웹사이트에 연결해주는 도구
  • OpenAI API를 활용하여 챗봇을 구현

GPT 챗봇 활용 예시

용도목적예시
고객 서비스 챗봇문의 응대"주문한 상품 언제 도착하나요?"
개인 비서 챗봇일정/알림 관리"내일 10시 회의 일정 알려줘"
교육용 챗봇개념 설명, 문제풀이"고등학교 수학 문제 도와줘"
쇼핑 챗봇추천 및 결제 안내"가장 인기 있는 스마트폰 추천해줘"

GPT 챗봇의 장점과 단점

장점

  • 24/7 응답 가능
  • 다국어 지원
  • 빠른 반응 속도
  • 다양한 주제에 확장 가능

단점

  • 정확도 문제: 가끔 틀린 정보 생성
  • 문맥 한계: 긴 대화에서 흐름을 잃을 수 있음
  • 윤리적 이슈: 부적절한 사용 주의

GPT 챗봇 만들기

1. OpenAI API로 챗봇 만들기 (Python 예제)

import openai

openai.api_key = "your-api-key"

def chat_with_gpt(user_input):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": user_input}
        ]
    )
    return response['choices'][0]['message']['content']

user_input = "What is the capital of France?"
print(chat_with_gpt(user_input))

2. 챗봇 성격 설정 (System Prompt 활용)


{"role": "system", "content": "You are a friendly and kind chatbot."}

→ 위처럼 설정하면 GPT가 친근하고 부드러운 말투로 응답하게 됨

GPT 챗봇 사용 시 고려할 점

  • 대화 흐름 유지: 너무 긴 대화에서는 GPT가 문맥을 잃을 수 있음
  • 윤리적 사용: 민감한 정보, 부적절한 응답을 사전에 차단할 수 있도록 설계 필요
  • API 키 관리: API 키는 개인 정보이므로 외부에 노출되지 않도록 안전하게 보관해야 함

6. ChatGPT vs GPT API

항목ChatGPT (웹사이트)GPT API (개발자용)
접근 방식웹사이트 (chat.openai.com)API 호출로 사용
사용 대상일반 사용자개발자, 기업, 서비스 구축자
사용 방법채팅창에 입력코드로 메시지 전달
요금무료 & 유료 플랜 (Plus 등)사용량 기반 과금
기능채팅, 이미지 생성, 문서 분석 등직접 제어 가능 (텍스트, 이미지, 음성 등)
대화 유지자동으로 기억개발자가 messages 직접 관리
커스터마이징Custom GPT 제공완전한 자유 설정 가능 (프롬프트/역할 등)

요약

질문답변
❓ 그냥 쓰고 싶어요.👉 ChatGPT: 웹사이트에서 바로 채팅! (프로그래밍 필요 없음)
❓ 내 웹사이트에 GPT 챗봇을 넣고 싶어요.👉 GPT API: 코드로 GPT 기능을 가져다 쓸 수 있어요
❓ 내가 만든 앱에서 그림 그려주는 기능도 붙이고 싶어요.👉 GPT API + DALL·E API로 가능!
❓ 내 스타일에 맞는 GPT 캐릭터 만들고 싶어요.👉 ChatGPT의 Custom GPTs 또는 API로 직접 설정

7. OpenAI Playground 주요 설정 설명

항목설명추천 범위
Temperature창의성 조절 (높을수록 다양하고 창의적)0 ~ 2
Top P확률 상위 P% 단어만 선택 (nucleus sampling)0.5 ~ 1.0
Max Tokens생성 가능한 최대 토큰 수예: 100 ~ 1000
Response Format응답 형식 (text, json, chat 등)일반적으론 text
Stop Sequences특정 문자열이 나오면 응답 중단예: ["###"]
Frequency Penalty같은 단어 반복 억제0 ~ 2
Presence Penalty새로운 주제 유도, 주제 반복 억제0 ~ 2

정리

목적추천 설정
정확한 QA 챗봇Temperature = 0
창의적인 스토리Temperature = 1.0 ~ 1.3, Top P = 0.8
반복 억제Frequency Penalty = 1.0
주제 확장Presence Penalty = 1.0
profile
develop을 꿈꾸는

0개의 댓글