개발업무/개발

OpenAI LLM API: Responses, Chat Completions, Batch

NickTop 2026. 4. 25. 23:47

LLM API에는 아직 하나의 공식 표준이 없다. 하지만 OpenAI의 Chat Completions 형식은 너무 널리 쓰이게 되면서 사실상 표준처럼 자리 잡았다. 그래서 대부분의 LLM 서비스는 Chat Completions와 호환되게 LLM Endpoint를 제공한다

 

Chat Completions API

오랫동안 OpenAI 기반 챗봇 개발의 표준처럼 사용되던 방식.

messages 배열의 입력을 받고 각 message는 system, user, assistant 같은 role을 가진다

대화를 구성하는 메시지 목록을 주면 모델이 응답을 반환한다

SDK 함수는 실제로 /v1/chat/completions를 호출한다

from openai import OpenAI

client = OpenAI()

completion = client.chat.completions.create(
    model="gpt-5",
    messages=[
        {"role": "system", "content": "너는 친절한 고객 응대 챗봇이야"},
        {"role": "user", "content": "OpenAI와 Anthropic 모델의 차이가 뭐야?"}
    ]
)

print(completion.choices[0].message.content)

 

Responses API

기존에 채팅을 위한 API(chat completions)와 복잡한 기능 수행을 위한 Assistant API가 분리되어있었지만, 에이전트 구축에 용이하도록 Responses API로 병합했다

https://openai.com/ko-KR/index/new-tools-for-building-agents/

 

새로운 프로젝트를 구축중이라면 Responses API를 쓰도록 권장한다.

단, 오디오는 아직 지원하지 않기 때문에 chat completions를 써야한다

가장 큰 특징은 아래와 같다

- Built-in tool : 예) web_search

- Seamless multi-turn

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    instructions="너는 친절한 고객 응대 챗봇이야",
    input="OpenAI와 Anthropic 모델의 차이가 뭐야?"
)

print(response.output_text)

 

그러면, 대화이력은 어떻게 보낼수있을까?

기존 chat completions처럼 배열로 보내도 되지만, previous_response_id를 쓰면 어플리케이션 입장에서 대화이력을 저장소에 담지 않아도 된다

from openai import OpenAI

client = OpenAI()

response1 = client.responses.create(
    model="gpt-5",
    instructions="너는 친절한 고객 응대 챗봇이야",
    input="OpenAI와 Anthropic 모델의 차이가 뭐야?",
    store=True
)

response2 = client.responses.create(
    model="gpt-5",
    instructions="너는 친절한 고객 응대 챗봇이야",
    input="조금 더 자세히 설명해줘",
    previous_response_id=response1.id,
    store=True    
)

 

tool 사용시 tools 파라미터에 넣어주면 된다. web_search는 기본제공한다

answer = client.responses.create(
    model="gpt-5.5",
    input="Who is the current president of France?",
    tools=[{"type": "web_search"}]
)

print(answer.output_text)

 

 

https://developers.openai.com/api/docs/guides/migrate-to-responses

 

Batch API

즉각적인 응답이 필요없을때 쓸수있다

여러개의 요청을 동시에 보낸다

https://developers.openai.com/api/docs/guides/batch

 

 

 

'개발업무 > 개발' 카테고리의 다른 글

OAuth란  (0) 2026.03.21
Spring Boot: WebClient vs RestTemplate  (0) 2025.09.30
LoadRunner로 WebSocket(STOMP) 부하 테스트하기  (1) 2025.08.29
Java SimpleDateFormat YYYY vs yyyy  (0) 2025.01.12
docker network  (1) 2024.07.21