Skip to main content
POST
OpenAI 네이티브 형식(ChatCompletions)

소개

OpenAI 호환 대규모 언어 모델을 사용해 대화형 응답을 생성하는 범용 텍스트 채팅 API입니다. 통합 API 인터페이스를 통해 OpenAI, Claude, DeepSeek, Grok, Tongyi Qianwen 등 여러 주요 대형 모델을 호출할 수 있습니다.

인증

string
필수
Bearer Token, 예: Bearer sk-xxxxxxxxxx

요청 매개변수

string
필수
모델 식별자, 지원 모델:
  • OpenAI 시리즈: gpt-5.5, gpt-5.4, gpt-5.4-pro, gpt-5.4-mini, gpt-5.4-nano, gpt-4o
  • Claude 시리즈: claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001
  • DeepSeek 시리즈: deepseek-v4-pro, deepseek-v4-flash, deepseek-v3-1-250821, deepseek-v3, deepseek-r1
  • Grok 시리즈: grok-4, grok-4-fast-reasoning, grok-3
  • Gemini 시리즈: gemini-3.1-pro-preview, gemini-3-pro-preview, gemini-3-flash-preview, nano-banana-pro-thinking/-nothinking / -thinking-<budget> / -thinking-low/-thinking-high 변형
  • 국산 모델: glm-5, glm-4.7, doubao-seed-1-8-251228 (Doubao Seed 시리즈), qwen3-coder-plus, kimi-k2.5
array
필수
대화 메시지 목록, 각 요소는 role(user/system/assistant)과 content를 포함합니다
number
기본값:"0.7"
무작위성 제어, 0-2 범위, 값이 높을수록 응답이 더 무작위적입니다
boolean
기본값:"false"
스트리밍 출력 사용 여부, SSE 형식의 청크 데이터를 반환합니다
number
생성할 최대 토큰 수, 응답 길이를 제어합니다
number
핵 샘플링 매개변수, 0-1 범위, 생성 다양성을 제어합니다

기본 예시

고급 기능

도구 호출 (Functions / Tools)

GPT, Claude, DeepSeek, Grok, Tongyi Qianwen 등의 모델에 적용 가능한 OpenAI 호환 도구 호출 형식을 지원합니다.

구조화된 출력 (JSON Schema)

response_format 매개변수를 통해 출력 형식을 제어할 수 있으며, GPT, Claude, Grok 등의 모델에 적용됩니다.
엄격한 구조화된 출력이 필요한 경우 temperature 값을 낮추는 것(예: 0.1-0.3)과 적절한 max_tokens 설정을 권장하여 일관성을 높입니다.

사고(Thinking) 기능

일부 모델은 사고(Thinking/Reasoning) 기능을 지원하여, 응답 생성 시 추론 과정을 표시할 수 있습니다. 모델마다 구현 방식이 다릅니다:
DeepSeek 모델은 thinking 필드를 통해 사고 기능을 활성화할 수 있습니다:
  • 기본 thinking.type"disabled"이며, 활성화하려면 "enabled"로 명시적으로 설정해야 합니다
  • 사고 기능의 출력 형태는 모델 버전에 따라 다를 수 있습니다
  • 더 나은 대화형 경험을 위해 stream: true와 함께 사용하는 것을 권장합니다

Tongyi Qianwen 확장 기능

Tongyi Qianwen 모델은 검색, 음성 인식 등의 확장 기능을 지원합니다. 모든 확장 매개변수는 parameters 객체에 넣어야 합니다.
Tongyi Qianwen의 모든 확장 매개변수(enable_search, search_options, asr_options, temperature, top_p 등)는 요청 본문 최상위가 아닌 parameters 객체에 넣어야 합니다.

웹 검색 기능

일부 모델은 실시간 웹 검색을 지원하여 최신 정보에 접근하고 응답에 인용 출처를 포함할 수 있습니다.
Claude 모델은 web_search_options 매개변수로 웹 검색 기능을 활성화할 수 없으므로, 도구 호출을 통해서만 구현할 수 있으며 네트워크 및 프롬프트 이유로 불안정할 수 있습니다. 자세한 내용은 위의 도구 호출(Functions / Tools)을 참조하세요.기본 예시(도구 호출 흐름 표시):
위치 정보 포함 예시(도구 호출 흐름 표시):
  • 검색 기능은 응답 시간과 토큰 소비(검색 결과 내용 포함)를 증가시킵니다
  • 검색 결과는 응답에 인용 출처가 자동으로 포함됩니다
  • 지원 모델: Claude Sonnet 4, Claude 3 Opus 등
  • 다중 턴 대화에서 도구 호출과 결과는 메시지 기록에 표시되며, 모델은 이전 검색 결과를 바탕으로 대화를 이어갈 수 있습니다
안정성 안내:
  • 웹 검색 기능은 업스트림 프록시 서비스 및 외부 검색 서비스에 의존하며, 다음과 같은 불안정성이 있을 수 있습니다:
    • 네트워크 변동: 네트워크 연결 문제로 검색 요청이 타임아웃되거나 실패할 수 있습니다
    • 서비스 제한: 검색 서비스에 속도 제한, 타임아웃 제한 또는 일시적 사용 불가가 있을 수 있습니다
    • 검색 결과 품질: 일부 쿼리는 관련 정보를 찾지 못하거나 검색 결과 품질이 낮을 수 있습니다
    • 모델 판단: 모델은 질문에 따라 검색 필요 여부를 자동으로 판단하며, 일부 경우 검색이 트리거되지 않을 수 있습니다
  • 이는 웹 검색 기능의 고유한 특성입니다. 다음을 권장합니다:
    • 중요한 시나리오에서 재시도 메커니즘 구현
    • 검색 실패 시 우아한 성능 저하 처리(예: 모델의 지식 베이스로 답변)
    • 실시간성이 매우 높은 시나리오에서 웹 검색에 전적으로 의존하지 않기

GPT 파일 입력 (Responses API)

GPT-5 등의 모델은 파일 입력 기능을 지원하며, /v1/chat/completions가 아닌 /v1/responses 엔드포인트를 통해 호출해야 합니다.
외부 URL을 연결하여 PDF 파일을 업로드할 수 있습니다:
  • 파일 크기 제한: 단일 파일 50MB 이하, 단일 요청의 모든 파일 총 크기 50MB 이하
  • 지원 모델: gpt-4o, gpt-4o-mini, gpt-5-chat 및 텍스트·이미지 입력을 지원하는 기타 모델

Grok 추론(Reasoning) 기능

Grok 모델(특히 grok-4-fast-reasoning)은 추론 기능을 지원합니다. 활성화 시 usage.completion_tokens_details.reasoning_tokens에 추론 과정에서 소비된 토큰 수가 표시됩니다. 자세한 내용은 아래 usage 필드 설명을 참고하세요.

usage 필드 설명

/v1/chat/completions 호출 시 응답의 usage 객체에 토큰 사용량 통계가 포함됩니다. 먼저 공통 필드(일반 대화 모델 시나리오)를 설명하고, 특정 시나리오에서만 0이 아닌 값이 나타나는 전용 필드를 설명합니다.

공통 필드

적용 범위: GPT 시리즈, Claude 대화/사고 모델, Gemini, DeepSeek 등 /v1/chat/completions를 통한 텍스트 대화 시나리오. 게이트웨이가 내부적으로 Claude Messages 프로토콜 또는 이미지 생성 모델을 호출할 때만 나타나는 필드는 포함하지 않습니다 — 특수 시나리오 전용 필드를 참고하세요.
  • prompt_tokens_details / completion_tokens_details 객체는 응답에 항상 존재하며, 내부 하위 필드가 모두 0이어도 생략되지 않습니다. 0은 「미지원」이 아니라 「이번 요청에서 사용되지 않음」을 의미합니다.
  • completion_tokens_details.image_tokens(및 prompt_tokens_details.image_tokens)는 필드 구조가 항상 존재하기 때문에 공통 문서에 포함되지만, 0이 아닌 값은 특수 시나리오(Claude/이미지 생성 모델)에서만 나타납니다. 특수 시나리오 전용 필드를 참고하세요.
  • reasoning_tokens는 모델 간 공통 개념입니다. 업스트림이 OpenAI 추론 모델, Claude 확장 사고, Gemini thinking 중 어느 것이든, 해당 호출에서 「사고」 기능이 활성화되면 이 단일 필드에 반영됩니다.

특수 시나리오 전용 필드

다음 필드는 특정 경우에만 0이 아닌 값이 나타납니다. 요청은 /v1/chat/completions로 들어가지만, 게이트웨이가 내부적으로 다른 프로토콜(Claude Messages 프로토콜 / 이미지 생성 모델)로 변환해 업스트림을 호출하고, 변환된 usage에 「네이티브 프로토콜 전용」필드가 포함됩니다.

시나리오 1: 내부적으로 Claude 호출 (/v1/chat/completions/v1/messages)

OpenAI 형식으로 Claude 모델을 요청하면 게이트웨이가 요청을 Anthropic Messages 프로토콜로 변환하고, Claude의 usage를 OpenAI 형식으로 다시 변환합니다. Claude의 캐시 메커니즘은 OpenAI보다 세분화되어 있으며(5분/1시간 TTL 2단계 요금), 아래 전용 필드로 표현됩니다:
prompt_tokens_details.cached_tokens, completion_tokens_details.reasoning_tokens도 Claude 모델 호출 시 값이 있습니다(각각 Claude 캐시 읽기 토큰 수, 확장 사고 토큰 수에 해당). 하지만 이 두 필드는 모델 간 공통 필드로 공통 필드에서 이미 설명했습니다.

시나리오 2: 내부적으로 이미지 생성 모델 호출 (/v1/chat/completions/v1/images/generations 의미)

일부 이미지 생성 모델(예: Gemini 네이티브 이미지 출력, gpt-image 시리즈)은 원래 공식 /v1/images/generations 인터페이스의 usage 구조(input_tokens/output_tokens + 모달리티 분류)를 사용합니다. 사용자가 /v1/chat/completions로 대화형 이미지 생성을 호출하면 게이트웨이가 이 정보를 chat 형식 usage에 매핑합니다:

시나리오 3: 채널 프로토콜 차이로 인한 필드

다음 두 필드는 「변환」된 것이 아니라 특정 채널에서 업스트림 응답 필드를 그대로 전달한 것입니다. 주류 모델을 정상 사용하면 거의 만나지 않습니다:

응답 형식

usage 필드 전체 설명은 위 usage 필드 설명을 참고하세요.

오류 처리

지원 모델 시리즈

OpenAI 시리즈

  • GPT-5.5, GPT-5.4 family (5.4 / Pro / Mini / Nano), GPT-4o, GPT-4o Mini

Claude 시리즈 (Anthropic)

  • Claude Sonnet 4, Claude 3 Opus, Claude 3 Haiku

DeepSeek 시리즈

  • DeepSeek V3, DeepSeek R1

Grok 시리즈 (xAI)

  • Grok-4, Grok-3, Grok-3-fast, Grok-4-fast-reasoning

Tongyi Qianwen 시리즈 (Qwen)

  • Qwen3-omni-flash 등

Doubao Seed 시리즈

  • doubao-seed-1-8-251228 등

기타 모델

  • Gemini 시리즈, GLM 시리즈(glm-5 포함), Kimi 시리즈 등
전체 모델 목록은 모델 정보 페이지를 참조하세요.

참고 사항

  • messages 목록에서 system 역할은 모델 동작을 설정하고, user 역할은 사용자 질문용입니다
  • 다중 턴 대화는 기록(assistant 역할 응답 포함)을 추가해야 합니다
  • openai 라이브러리 필요: pip install openai
  • 모델마다 특정 기능 지원 수준이 다를 수 있으므로, 사용 전 해당 모델 문서를 확인하는 것을 권장합니다
  • 스트리밍 출력을 사용하면 첫 토큰 응답 시간과 대화형 경험을 개선할 수 있습니다
  • 도구 호출에는 모델 응답이 차단되지 않도록 적절한 타임아웃 및 재시도 메커니즘이 필요합니다
  • Tongyi Qianwen 확장 매개변수는 반드시 parameters 객체에 넣어야 합니다

관련 자료

FAQ

채팅 인터페이스 FAQ 보기

모델 목록

지원되는 모든 모델 정보 보기