> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT 전체 모델 인터페이스 - Responses 전체 매개변수

> - GPT 시리즈 텍스트 모델용 OpenAI 호환 Responses API이며, 구체적인 모델은 `model`로 선택합니다(지정 가능한 값 전체는 `model` 매개변수의 대조표 참고)
- 전 시리즈가 추론 모델이며 추론 깊이는 `reasoning.effort`로 제어합니다. 추론 token은 출력 token으로 청구됩니다
- Prompt 캐시가 자동으로 적용됩니다: 캐시에 적중한 입력 token은 더 저렴한 캐시 요금으로 청구됩니다
- 동기 모드와 스트리밍(SSE) 모드를 지원합니다
- 서버 측 도구: `web_search`(웹 검색), `code_interpreter`(코드 실행), `file_search`(문서 검색)
- 일반 `function` 도구(클라이언트 측 함수 호출)도 함께 지원합니다
- 여러 턴의 대화는 `previous_response_id`로 연결할 수 있습니다
- **참고** 일부 매개변수는 모델별로 지원 범위가 다르므로 아래 각 매개변수 설명을 확인하세요

<Note>
  **BaseURL**: 기본 BaseURL은 `https://direct.evolink.ai`이며, 텍스트 모델 지원이 더 우수하고 장시간 연결을 지원합니다. `https://api.evolink.ai`는 멀티모달 서비스의 주력 엔드포인트이며, 텍스트 모델에 대해서는 대체 주소로 사용됩니다.
</Note>

<Note>
  **서버 측 도구**(`web_search`, `code_interpreter`, `file_search`, `mcp`)는 서버에서 실행되므로 클라이언트가 결과를 되돌려 보낼 필요가 없으며, 이 API에서만 제공됩니다. Chat Completions 엔드포인트는 일반 `function` 도구 호출만 지원합니다.
</Note>

<Note>
  **참고** 이 API는 동기와 스트리밍 두 가지 모드만 지원합니다. `background: true`를 사용하는 백그라운드 비동기 모드는 지원하지 않으며, 응답 ID로 조회·취소·삭제하는 엔드포인트도 제공하지 않습니다. 오래 걸리는 생성이 필요한 경우 `stream: true`로 연결을 유지하세요.

  `image_generation` 도구는 본 시리즈 모델에서 사용할 수 없습니다. 이미지 생성에는 이미지 시리즈 모델 API를 이용하세요.
</Note>

<Note>
  **멀티턴 대화**: 이전 턴에서 반환된 `id`를 다음 턴의 `previous_response_id`로 전달하면 컨텍스트를 이어갈 수 있습니다. 응답에는 보존 기한이 있으며, 만료되면 해당 ID는 더 이상 유효하지 않고 요청은 새 대화로 처리됩니다. 컨텍스트 정확성이 특히 중요한 경우에는 전체 `input` 히스토리를 직접 관리하는 것을 권장합니다.
</Note>


## OpenAPI

````yaml ko/api-manual/language-series/gpt/responses/responses-reference.json POST /v1/responses
openapi: 3.1.0
info:
  title: GPT 전체 모델 인터페이스 - Responses 전체 매개변수
  description: OpenAI 호환 Responses API로 GPT 시리즈 텍스트 모델을 호출하기 위한 전체 매개변수 설명서입니다(서버 측 도구 포함).
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: 프로덕션 (권장)
  - url: https://api.evolink.ai
    description: 대체 URL
security:
  - bearerAuth: []
tags:
  - name: Responses
    description: 서버 측 도구를 지원하는 OpenAI Responses API
paths:
  /v1/responses:
    post:
      tags:
        - Responses
      summary: GPT Responses (전체 모델, 전체 매개변수)
      description: >-
        - GPT 시리즈 텍스트 모델용 OpenAI 호환 Responses API이며, 구체적인 모델은 `model`로 선택합니다(지정
        가능한 값 전체는 `model` 매개변수의 대조표 참고)

        - 전 시리즈가 추론 모델이며 추론 깊이는 `reasoning.effort`로 제어합니다. 추론 token은 출력 token으로
        청구됩니다

        - Prompt 캐시가 자동으로 적용됩니다: 캐시에 적중한 입력 token은 더 저렴한 캐시 요금으로 청구됩니다

        - 동기 모드와 스트리밍(SSE) 모드를 지원합니다

        - 서버 측 도구: `web_search`(웹 검색), `code_interpreter`(코드 실행),
        `file_search`(문서 검색)

        - 일반 `function` 도구(클라이언트 측 함수 호출)도 함께 지원합니다

        - 여러 턴의 대화는 `previous_response_id`로 연결할 수 있습니다

        - **참고** 일부 매개변수는 모델별로 지원 범위가 다르므로 아래 각 매개변수 설명을 확인하세요
      operationId: gptResponsesReference
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponsesRequest'
      responses:
        '200':
          description: >-
            응답 생성 성공 (JSON 객체, 또는 `stream=true`인 경우 `response.completed`로 끝나는
            SSE 이벤트 스트림)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsesResponse'
        '400':
          description: >-
            요청 매개변수가 유효하지 않음(해당 모델이 지원하지 않는 매개변수 포함. 오류 메시지에 구체적인 매개변수 이름이
            표시됩니다)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 400
                  message: >-
                    Invalid value: '__bogus__'. Supported values are: 'auto' and
                    'disabled'.
                  type: invalid_request_error
                  param: truncation
        '401':
          description: 인증되지 않음, 유효하지 않거나 만료된 토큰
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 401
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: 할당량 부족
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 402
                  message: Insufficient quota
                  type: insufficient_quota_error
                  fallback_suggestion: https://evolink.ai/dashboard/billing
        '429':
          description: 요청 한도를 초과했습니다
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 429
                  message: Rate limit exceeded
                  type: rate_limit_error
                  fallback_suggestion: retry after 60 seconds
        '500':
          description: 서버 내부 오류
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 500
                  message: Internal server error
                  type: internal_server_error
                  fallback_suggestion: try again later
        '503':
          description: 서비스 일시적으로 사용 불가
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 503
                  message: Service temporarily unavailable
                  type: service_unavailable_error
                  fallback_suggestion: retry after 30 seconds
components:
  schemas:
    ResponsesRequest:
      type: object
      required:
        - model
        - input
      properties:
        model:
          type: string
          description: |-
            호출할 모델:

            | 모델 ID | 컨텍스트 윈도우 | 포지셔닝 |
            |---|---|---|
            | `gpt-5.6-sol` | 1,050,000 | GPT-5.6 제품군, 최첨단 추론 |
            | `gpt-5.6-terra` | 1,050,000 | GPT-5.6 제품군, 균형 잡힌 프로덕션 |
            | `gpt-5.6-luna` | 1,050,000 | GPT-5.6 제품군, 높은 처리량과 비용 관리 |
            | `gpt-5.5` | 400,000 | 범용 추론 모델 |
            | `gpt-5.4` | 128,000 | 범용 추론 모델 |
            | `gpt-5.2` | 400,000 | 범용 추론 모델 |
            | `gpt-5.1` | 400,000 | 범용 추론 모델 |
          enum:
            - gpt-5.6-sol
            - gpt-5.6-terra
            - gpt-5.6-luna
            - gpt-5.5
            - gpt-5.4
            - gpt-5.2
            - gpt-5.1
          example: gpt-5.6-sol
        input:
          description: >-
            모델 입력: 단순 문자열 또는 입력 항목 배열입니다.


            입력 항목의 `content`는 `input_text`(텍스트)와 `input_image`(이미지) 두 가지 블록을
            지원합니다:


            ```json

            "input": [
              {
                "role": "user",
                "content": [
                  { "type": "input_text", "text": "이 이미지에는 무엇이 있나요?" },
                  {
                    "type": "input_image",
                    "image_url": "https://example.com/photo.png",
                    "detail": "auto"
                  }
                ]
              }
            ]

            ```


            **이미지**

            - `image_url`에 이미지의 공개 URL을 전달합니다

            - `image_url`은 반드시 문자열이어야 하며, `{ "url": "..." }`로 작성하면 `400`이 반환됩니다

            - `detail`은 `image_url`과 같은 레벨에 둡니다(그 안에 중첩하지 않습니다): `auto`(기본값) /
            `low` / `high` / `original`

            - 이미지는 정상적으로 다운로드할 수 있어야 하며, 그렇지 않으면 `400`이 반환됩니다


            **도구 결과**

            - 배열에는 이전 턴의 `function_call_output` 등 도구 결과 항목을 되돌려 담을 수도 있습니다


            **참고** 이 API의 블록 유형은 Chat Completions API와 다릅니다(Chat은 `text` /
            `image_url` 사용). 두 가지를 섞어 쓸 수 없으며, 잘못 지정하면 `400`이 반환됩니다.
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/InputItem'
          example: >-
            Search for AI news from the past week and summarize it in three
            sentences.
        instructions:
          type: string
          description: >-
            시스템 수준 지시로, `input` 맨 앞에 시스템 메시지를 하나 삽입하는 것과 동일합니다.
            `previous_response_id`로 대화를 이어갈 때 이 매개변수는 이전 턴에서 상속되지 않으므로 매 턴마다
            전달해야 합니다.
          example: You are a concise assistant. Answer in no more than three sentences.
        stream:
          type: boolean
          description: 스트리밍으로 응답을 반환할지 여부 (SSE 이벤트, `response.completed`로 종료). 기본값 `false`.
          default: false
          example: false
        max_output_tokens:
          type: integer
          description: >-
            생성할 최대 token 수(추론 token 포함)입니다. 상한에 도달하면 `status`는 `incomplete`가
            됩니다.
          example: 2048
        reasoning:
          type: object
          description: >-
            추론 제어입니다.


            **`effort`(추론 깊이)의 지정 가능한 값은 모델에 따라 다릅니다:**


            | 모델 | 지정 가능한 값 |

            |---|---|

            | `gpt-5.6-sol` / `gpt-5.6-terra` / `gpt-5.6-luna` | `none`, `low`,
            `medium`, `high`, `xhigh`, `max` |

            | `gpt-5.5` / `gpt-5.4` / `gpt-5.2` | `none`, `low`, `medium`,
            `high`, `xhigh` |

            | `gpt-5.1` | `none`, `low`, `medium`, `high` |


            **`summary`(추론 요약)**: `auto` / `concise` / `detailed`, 전 시리즈에서 사용할 수
            있습니다. 활성화하면 `output`에 `reasoning` 항목이 나타납니다.


            **`mode`(추론 모드)**: `standard` / `pro`, `gpt-5.6` 제품군만 지원합니다.


            **`context`(추론 컨텍스트 범위)**: `auto` / `current_turn` / `all_turns`,
            `gpt-5.6` 제품군만 지원합니다.


            추론 token은 출력 token으로 청구되며
            `usage.output_tokens_details.reasoning_tokens`에 집계됩니다.
          properties:
            effort:
              type: string
              enum:
                - none
                - low
                - medium
                - high
                - xhigh
                - max
              example: medium
            summary:
              type: string
              enum:
                - auto
                - concise
                - detailed
              example: auto
            mode:
              type: string
              enum:
                - standard
                - pro
              example: standard
            context:
              type: string
              enum:
                - auto
                - current_turn
                - all_turns
              example: current_turn
        text:
          type: object
          description: >-
            출력 텍스트 제어:


            - `format`: `{"type": "text"}`(기본값), `{"type": "json_object"}`, 또는
            구조화된 결과를 출력하는 `{"type": "json_schema", "name": "...", "schema":
            {...}, "strict": true}`

            - `verbosity`: `low` / `medium` / `high`, 답변의 상세 정도를 제어합니다
          properties:
            format:
              type: object
              description: 출력 형식 정의
            verbosity:
              type: string
              enum:
                - low
                - medium
                - high
              example: medium
        tools:
          type: array
          description: >-
            도구 선언입니다. 서버 측 도구는 서버에서 실행되므로 클라이언트가 결과를 되돌려 보낼 필요가 없습니다:


            | 도구 유형 | 기능 |

            |---|---|

            | `web_search` | 웹을 검색하고 페이지를 탐색합니다(별칭 `web_search_preview`) |

            | `code_interpreter` | 샌드박스에서 코드를 실행하며 `"container": {"type":
            "auto"}`가 필요합니다 |

            | `file_search` | 이미 생성된 벡터 스토어를 검색하며 `vector_store_ids`가 필요합니다 |

            | `mcp` | 원격 MCP 서비스에 연결하며 `server_label`과 `server_url`이 필요합니다 |


            일반 `function` 도구(클라이언트 측 함수 호출)도 함께 지원합니다.


            **참고** `image_generation`은 본 시리즈 모델에서 사용할 수 없으므로 이미지 시리즈 모델 API를
            이용하세요.
          items:
            $ref: '#/components/schemas/Tool'
          example:
            - type: web_search
        tool_choice:
          description: >-
            도구 선택을 제어합니다: `"auto"`(기본값) / `"none"` / `"required"`, 또는 특정 도구를
            지정하는 객체(예: `{"type": "web_search"}`).
          oneOf:
            - type: string
              enum:
                - none
                - auto
                - required
            - type: object
        max_tool_calls:
          type: integer
          description: 이번 응답에서 허용되는 도구 호출 총 횟수의 상한입니다.
          example: 5
        parallel_tool_calls:
          type: boolean
          description: >-
            모델이 한 턴 안에서 여러 도구를 병렬로 호출할 수 있는지 여부입니다. 기본값은 `true`입니다.


            **참고** `false`로 설정할 수 있는 것은 `gpt-5.6` 제품군과 `gpt-5.5`뿐이며, `gpt-5.4` /
            `gpt-5.2` / `gpt-5.1`에서는 이 매개변수가 적용되지 않고 항상 `true`로 동작합니다.
          default: true
          example: true
        previous_response_id:
          type: string
          description: >-
            이전 응답의 `id`로, 여러 턴의 대화를 연결하는 데 사용하며 히스토리 메시지를 다시 올릴 필요가 없습니다.


            **참고** `store: true`(기본값)와 함께 사용해야 합니다. 응답에는 보존 기한이 있으며, 만료되면 해당 ID는
            더 이상 유효하지 않습니다. 이 경우 요청은 새 대화로 처리되어 컨텍스트를 상속하지 않습니다. 컨텍스트 정확성이 특히
            중요한 경우에는 전체 `input` 히스토리를 직접 관리하는 것을 권장합니다.
          example: resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5
        store:
          type: boolean
          description: >-
            이번 응답을 서버 측에 보존할지 여부이며, 보존된 응답만 `previous_response_id`로 참조할 수 있습니다.
            기본값은 `true`입니다.


            **참고** `false`로 설정할 수 있는 것은 `gpt-5.6` 제품군과 `gpt-5.5`뿐이며, `gpt-5.4` /
            `gpt-5.2` / `gpt-5.1`에서는 이 매개변수가 적용되지 않고 항상 `true`로 동작합니다. 보존을 원하지
            않는 경우에는 끄기를 지원하는 모델을 선택하세요.
          default: true
          example: true
        include:
          type: array
          description: |-
            응답에 추가로 반환하도록 요청할 내용이며, 지정 가능한 값은 다음과 같습니다:

            - `reasoning.encrypted_content`
            - `message.output_text.logprobs`
            - `web_search_call.results`
            - `web_search_call.action.sources`
            - `file_search_call.results`
            - `code_interpreter_call.outputs`
            - `message.input_image.image_url`
            - `computer_call_output.output.image_url`
          items:
            type: string
          example:
            - reasoning.encrypted_content
        temperature:
          type: number
          description: >-
            샘플링 온도이며 값의 범위는 0 ~ 2입니다. 값이 낮을수록 출력이 결정적이 됩니다.


            **참고** `gpt-5.4` / `gpt-5.2` / `gpt-5.1`에서는 값 `0`이 적용되지 않습니다(전달하지 않은
            것과 동일하게 처리되어 기본값 `1`이 적용됩니다). 더 결정적인 출력이 필요하면 `0.01` 등 0보다 큰 값을
            사용하세요.
          minimum: 0
          maximum: 2
          example: 0.7
        top_p:
          type: number
          description: >-
            뉴클리어스 샘플링 매개변수이며 값의 범위는 0 ~ 1입니다. `temperature`와 함께 조정하지 않는 것을
            권장합니다.
          minimum: 0
          maximum: 1
          example: 0.9
        top_logprobs:
          type: integer
          description: >-
            각 위치에서 반환되는 후보 token 수이며 값의 범위는 0 ~ 20입니다. `include:
            ["message.output_text.logprobs"]`와 함께 사용해야 합니다.


            **참고** `gpt-5.6` 제품군과 `gpt-5.5`만 지원하며, 나머지 모델은 이 매개변수를 지원하지 않습니다.
          minimum: 0
          maximum: 20
          example: 2
        frequency_penalty:
          type: number
          description: |-
            빈도 페널티이며 값의 범위는 -2 ~ 2입니다. 내용이 반복될 확률을 낮춥니다.

            **참고** `gpt-5.6` 제품군만 지원하며, 나머지 모델은 이 매개변수를 지원하지 않습니다.
          minimum: -2
          maximum: 2
          example: 0.5
        presence_penalty:
          type: number
          description: |-
            존재 페널티이며 값의 범위는 -2 ~ 2입니다. 모델이 새로운 주제를 다루도록 유도합니다.

            **참고** `gpt-5.6` 제품군만 지원하며, 나머지 모델은 이 매개변수를 지원하지 않습니다.
          minimum: -2
          maximum: 2
          example: 0.5
        truncation:
          type: string
          description: >-
            컨텍스트가 윈도우를 초과했을 때의 처리 방식: `disabled`(기본값, 바로 오류 반환) 또는 `auto`(중간 내용을
            자동으로 잘라냄).
          enum:
            - auto
            - disabled
          default: disabled
          example: auto
        context_management:
          type: array
          description: >-
            긴 대화의 자동 압축 설정입니다. 예: `[{"type": "compaction", "compact_threshold":
            100000}]`. 컨텍스트가 임계값을 초과하면 히스토리가 자동으로 압축됩니다.


            **참고** `gpt-5.6` 제품군만 지원하며, 나머지 모델은 이 매개변수를 지원하지 않습니다.
          items:
            type: object
        prompt_cache_key:
          type: string
          description: 캐시 그룹화 키입니다. 접두사가 같은 요청에 동일한 값을 전달하면 Prompt 캐시 적중률이 높아집니다.
          example: app-agent-v1
        prompt_cache_retention:
          type: string
          description: 'Prompt 캐시 보존 정책: `in_memory`(기본값) 또는 `24h`(캐시 보존 시간 연장).'
          enum:
            - in_memory
            - 24h
          example: in_memory
        prompt:
          type: object
          description: >-
            이미 생성된 Prompt 템플릿을 참조하며, 형식은 `{"id": "pmpt_xxx", "version": "1",
            "variables": {...}}`입니다.
          properties:
            id:
              type: string
            version:
              type: string
            variables:
              type: object
        metadata:
          type: object
          description: 사용자 정의 키-값 쌍으로, 응답에 그대로 반환되어 비즈니스 측에서 태깅하기에 편리합니다. 키와 값은 모두 문자열입니다.
          example:
            trace_id: abc-123
        safety_identifier:
          type: string
          description: |-
            최종 사용자의 안정적인 식별자로, 오남용 추적에 사용합니다.

            **참고** `gpt-5.6` 제품군만 지원하며, 나머지 모델은 이 매개변수를 지원하지 않습니다.
          example: user-1024
        user:
          type: string
          description: 최종 사용자 식별자로, 호출 출처를 구분하는 데 사용합니다.
          example: user-1024
    ResponsesResponse:
      type: object
      properties:
        id:
          type: string
          description: 이번 응답의 고유 ID로, 다음 턴의 `previous_response_id`로 사용할 수 있습니다
          example: resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5
        object:
          type: string
          enum:
            - response
          description: 응답 유형
          example: response
        status:
          type: string
          description: >-
            응답 상태: `completed`는 정상 종료, `incomplete`는 `max_output_tokens` 도달 등의
            이유로 완료되지 않은 상태, `failed`는 생성 실패
          enum:
            - completed
            - incomplete
            - failed
          example: completed
        model:
          type: string
          description: 실제 사용된 모델 이름
          example: gpt-5.6-sol
        created_at:
          type: integer
          description: 생성 타임스탬프
          example: 1786705221
        output:
          type: array
          description: >-
            생성 순서대로 정렬된 출력 항목: `reasoning` 항목(추론 요약 / 암호화된 추론 내용), 도구 호출 항목(예:
            `web_search_call`, `code_interpreter_call`), 그리고 마지막으로 `output_text`
            내용을 담은 `message` 항목.
          items:
            $ref: '#/components/schemas/OutputItem'
        incomplete_details:
          type: object
          description: '`status`가 `incomplete`일 때 그 이유를 설명합니다'
        usage:
          $ref: '#/components/schemas/Usage'
        metadata:
          type: object
          description: 요청에 전달한 사용자 정의 키-값 쌍으로, 그대로 반환됩니다
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP 상태 오류 코드
            message:
              type: string
              description: 오류 설명
            type:
              type: string
              description: 오류 유형
            param:
              type: string
              description: 관련 매개변수 이름
            fallback_suggestion:
              type: string
              description: 오류 발생 시 제안
    InputItem:
      type: object
      description: >-
        입력 항목: 메시지 항목(`role` + `content`) 또는 이전 턴의 도구 결과 항목(예:
        `function_call_output`)


        도구 결과를 반환할 때의 형식:


        ```json

        {
          "type": "function_call_output",
          "call_id": "call_abc123",
          "output": "{\"temp_c\": 21}"
        }

        ```
      properties:
        role:
          type: string
          description: 메시지 역할
          enum:
            - system
            - developer
            - user
            - assistant
          example: user
        content:
          description: '입력 내용: 문자열 또는 콘텐츠 블록 배열(`input_text` / `input_image` 혼합)'
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/InputContentBlock'
        type:
          type: string
          description: >-
            입력 항목 유형. 일반 메시지 항목에서는 생략할 수 있으며, 도구 결과를 반환할 때는
            `function_call_output`을 사용합니다.
          enum:
            - function_call_output
          example: function_call_output
        call_id:
          type: string
          description: >-
            이전 턴의 `function_call` 출력 항목에 대응하는 `call_id`(해당 항목의 `id`가 아님).
            `function_call_output` 항목에만 필요합니다.
          example: call_abc123
        output:
          type: string
          description: >-
            도구 실행 결과(문자열). JSON 결과는 직접 문자열로 직렬화하세요. `function_call_output` 항목에만
            필요합니다.
          example: '{"temp_c": 21}'
    Tool:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: 도구 유형
          enum:
            - web_search
            - web_search_preview
            - code_interpreter
            - file_search
            - mcp
            - function
          example: web_search
    OutputItem:
      type: object
      properties:
        id:
          type: string
          description: 출력 항목 식별자
        type:
          type: string
          description: 출력 항목 유형
          enum:
            - reasoning
            - message
            - web_search_call
            - code_interpreter_call
            - file_search_call
            - mcp_call
            - function_call
          example: web_search_call
        status:
          type: string
          description: 출력 항목 상태
          example: completed
        content:
          type: array
          description: 메시지 콘텐츠 파트(`output_text`). `message` 항목에 포함됩니다
          items:
            type: object
        encrypted_content:
          type: string
          description: >-
            암호화된 추론 내용으로 `reasoning` 항목에 나타나며, 요청에서 `include:
            ["reasoning.encrypted_content"]`를 선언해야 합니다
    Usage:
      type: object
      description: >-
        Token 사용량 통계입니다. Prompt 캐시는 자동으로 적용되며, 캐시에 적중한 입력 token은 더 저렴한 캐시 요금으로
        청구됩니다.
      properties:
        input_tokens:
          type: integer
          description: 입력 토큰 수
          example: 18
        output_tokens:
          type: integer
          description: 출력 토큰 수 (추론 토큰 포함)
          example: 42
        total_tokens:
          type: integer
          description: 총 토큰 수
          example: 60
        input_tokens_details:
          type: object
          description: 상세 입력 토큰 정보
          properties:
            cached_tokens:
              type: integer
              description: 캐시에 적중한 token 수
              example: 0
            cache_write_tokens:
              type: integer
              description: 캐시에 기록된 token 수
              example: 0
        output_tokens_details:
          type: object
          description: 상세 출력 토큰 정보
          properties:
            reasoning_tokens:
              type: integer
              description: 추론 토큰 수
              example: 16
    InputContentBlock:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: |-
            콘텐츠 유형

            - `input_text`: 텍스트 블록
            - `input_image`: 이미지 입력
          enum:
            - input_text
            - input_image
          example: input_image
        text:
          type: string
          description: '`type=input_text`일 때의 텍스트 내용'
          example: What is in this image?
        image_url:
          type: string
          description: >-
            이미지의 공개 URL(`type=input_image`인 경우)입니다. 반드시 문자열이어야 하며, `{ "url":
            "..." }`로 작성하면 `400`이 반환됩니다. 이미지는 정상적으로 다운로드할 수 있어야 하며, 그렇지 않은 경우에도
            `400`이 반환됩니다.
          example: https://example.com/photo.png
        detail:
          type: string
          description: |-
            이미지 분석 정밀도이며 `image_url`과 같은 레벨에 둡니다(그 안에 중첩하지 않습니다)

            - `low`: 낮은 정밀도, token 소비가 적음
            - `high`: 높은 정밀도, 더 세밀하게 인식
            - `original`: 원본 이미지 크기로 분석
            - `auto`(기본값): 모델이 자동으로 결정
          enum:
            - auto
            - low
            - high
            - original
          default: auto
          example: auto
      description: 멀티모달 콘텐츠 블록입니다. `type`으로 유형을 선언하고 해당 유형에 일치하는 필드만 채웁니다.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |-
        ##모든 API는 Bearer Token 인증이 필요합니다##

        **API Key 받기:**

        [API Key 관리 페이지](https://evolink.ai/dashboard/keys)를 방문하여 API Key를 받으세요

        **요청 헤더에 추가:**
        ```
        Authorization: Bearer YOUR_API_KEY
        ```

````