본문 바로가기

카테고리 없음

OpenAI API, Completion vs. Response(Chat)

 

 

나도 초보자, OpenAI API 사용법
Completion vs Response(Chat) 완벽 비교 + 활용법

ChatGPT를 API로 쓸 때,
"Completion"이랑 "Response(Chat)"
방식의 차이와 활용법을 예쁘게 정리!
(모든 용어/코드는 주석과 함께, 진짜 쉬워!ㅎㅎ)

OpenAI API란?

OpenAI API는 내가 만든 프로그램이나 웹사이트에서 챗GPT 같은 AI의 똑똑한 답변이나 글쓰기, 번역, 상담 등을 자동으로 불러쓸 수 있게 해주는 서비스에요.

활용 예시:

  • 챗봇 만들기
  • 자동 요약, 번역, 감정 분석
  • 고객 상담 자동화
  • 글쓰기/코딩 보조

Completion vs Response(Chat) 차이

OpenAI API엔 크게 두 가지 방식!

1. Completion 방식

  • 프롬프트(prompt): AI에게 하고 싶은 질문/명령을 한 줄로 써줍니다.
  • AI가 이 프롬프트 뒤에 이어서 문장/답변을 만들어줘요.
  • 단순하고 빠르지만, 대화 맥락은 기억 잘 못함!
{
  "model": "text-davinci-003",    // 사용할 AI 모델 이름
  "prompt": "고양이에 대해 설명해줘.",  // AI에게 줄 질문/명령(프롬프트)
  "max_tokens": 100                // 생성할 글자(토큰) 최대 수
}

// 주석 설명
model: AI 엔진 종류(gpt-3, gpt-4 등)
prompt: AI에게 할 질문/명령(문장 1개)
max_tokens: 생성할 최대 답변 분량 (글자 X, "토큰" 단위)

2. Response(Chat) 방식 💬

  • messages라는 배열(리스트)에 대화 내용을 여러 줄로 쌓아올림
  • 각 메시지엔 role(역할)이 있음: system(지시), user(질문), assistant(AI 답변)
  • 대화 맥락을 기억하며, 챗봇처럼 자연스러운 대화 가능!
{
  "model": "gpt-3.5-turbo",  // 챗GPT 모델 이름
  "messages": [
    {"role": "system", "content": "너는 귀여운 조수야."},   // AI 역할 지시
    {"role": "user", "content": "고양이에 대해 설명해줘."}  // 유저 질문
  ],
  "temperature": 0.7,        // 창의성(0~2)
  "max_tokens": 150           // 최대 답변 분량
}

// 주석 설명
role: 누가 말하는지 (system=지시, user=질문, assistant=AI답변)
content: 실제 말(지시/질문/답변)
temperature: 창의성(0=딱딱, 2=상상력 폭발!)
messages: 대화 전체 내역(챗봇 필수!)

📊 Completion vs Chat 한눈 비교!

구분 Completion 방식 Response(Chat) 방식
입력 구조 prompt (질문 1개) messages (여러 줄 대화)
역할/Role 없음 system/user/assistant
대화 맥락 유지 어려움 잘 유지함(챗봇에 적합)
추천 활용 한 줄 답변, 텍스트 생성 챗봇, Q&A, 상담 등
코드 구조 단순함 조금 복잡하지만 유연

🪄 기본 활용법 예시 (파이썬)

  • 파이썬에서 openai 라이브러리 설치
    pip install openai

🐾 Completion 예시

import openai
openai.api_key = "내 API 키 입력"

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="고양이에 대해 설명해줘.",
  max_tokens=100
)
print(response.choices[0].text.strip())

Chat 예시

import openai
openai.api_key = "내 API 키 입력"

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "너는 귀여운 조수야."},
    {"role": "user", "content": "고양이에 대해 설명해줘."}
  ],
  max_tokens=150,
  temperature=0.7
)
print(response.choices[0].message['content'].strip())

독자가 궁금해할 Q&A

Q1. 어떤 모델을 써야 할까요?
gpt-3.5-turbo는 빠르고 저렴, 챗봇/상담용에 Good!
gpt-4 계열은 더 똑똑하고 장문·어려운 문장에 강하지만, 가격이 높음.
공식 모델 비교 바로가기

Q2. tokens가 뭐예요?
토큰(token)은 "글자"가 아닌 단어 조각.
예를 들어, "고양이"는 2토큰, "cat"은 1토큰.  요금도 토큰 기준으로 책정됨!
더 자세한 설명 :  "처음 접한 ChatGPT API × Python"OpenAI 토크나이저 공식 안내를 참고.

Q3. Chat 방식으로 여러 질문을 한 번에 할 수 있나요?
네! messages에 질문/답변을 계속 쌓으면, AI가 대화 맥락을 파악해 더 똑똑하게 답변해요!

Q4. 실제 활용 예시는?
고객상담 챗봇, 블로그 글 자동 생성, 메일/문서 요약, 소설/시/대화문 생성, 코딩 질문/디버깅 등

 

- 활용 팁 & 참고자료

핵심요약
  • Completion: 프롬프트 한 줄, 단순한 답변/글쓰기용
  • Chat(Response): messages 배열, 챗봇/상담 등 대화형에 추천!
  • 코딩/자동화 시, 구조와 용어(주석!)를 잘 보고 맞는 방식 선택!

 

반응형