본문 바로가기
AI Study/AI Agent

[AI Agent] OPEN AI의 세가지 API

by 하람 Haram 2025. 10. 23.
728x90

Open AI는 세가지 주요 API를 제공한다

 

 

 

 

요약

https://wikidocs.net/blog/@ychoi/3965/

 

위에 내용도 중요하지만 결정적으로 찾은 이유는 사용 방법에 있다

 

# Completions
client.completions.create()

# Chat
client.chat.completions.create()

# Responses
client.responses.create()

 

 

1. Completions API

가장 초기 방식으로

텍스트 입력 -> 텍스트 출력 구조를 가진다

역할 구분이 없음 (모든 지시문과 컨텍스트를 프롬포트에 포함시켜야 한다)

from openai import OpenAI
client = OpenAI()

completion = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt="인공지능의 미래에 대해 간략히 설명해주세요.",
    temperature=0.7,
    max_tokens=150,
)
print(completion.choices[0].text.strip())

 

 

2. Chat Completions API

가장 많이 사용되는 표준 인터페이스

특징으로는 메세지 역할 구분이 존재 한다 ("System", "user", "assistant")

- 외부서비스와 연동이 가능한 Function Calling 기능이 제공된다 (함수 호출 지원)

- 지원하는 모델이 많다

- 비전 모델도 지원 한다

- 챗봇 및 대화형 애플리케이션 개발에 사용

- RAG 시스템 구현 / 외부 API와 통합되는 도구 호출 기능 활용에 사용

from openai import OpenAI
client = OpenAI()

chat = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "당신은 한국어 AI 전문가입니다."},
        {"role": "user", "content": "머신러닝과 딥러닝의 차이점을 설명해주세요."}
    ],
    temperature=0.7,
)
print(chat.choices[0].message.content)

 


3. Responses API : 차세대 에이전트형 인터페이스

2025년 3월에 나온 OpenAI의 최신 API이다.

서버 측 상태 관리와 내장 도구를 활용한 Agent 개발을 지원

 

- 상태유지 : 서버가 대화 기록을 관리하여 개발 편의성 향상

    - store - false를 하면 비활성화 (데이터 보존기간은 30일이다)

- 다중 모달 입력 : 텍스트와 이미지를 혼합한 입력 지원

- 내장 도구 : 웹 검색, 파일 검색등을 예전엔 설정해줘야 하는데 설정이 필요 없음

- 에이전트 SDK 연동 : Python용 Agent SDK와 함께 사용하여 고급 에이전트 오케스트레이션 구현 가능

 

 

from openai import OpenAI
client = OpenAI()

# 첫 번째 요청
first = client.responses.create(
    model="gpt-4.1",
    input="최근 인공지능 기술 트렌드를 알려줘",
    tools=[{"type": "web_search_preview"}]  # 웹 검색 도구 활성화
)

# 첫 번째 응답의 ID를 사용하여 대화 연속
second = client.responses.create(
    model="gpt-4.1",
    input="이 중에서 가장 주목받는 기술은 무엇이야?",
    previous_response_id=first.id  # 대화 상태 유지
)

print(second.output_text)

 

 

참고자료

https://wikidocs.net/blog/@ychoi/3965/

728x90