> ## 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.

# Gemini Decisions - 전체 매개변수 문서

> - `gemini-decision-1`으로 텍스트, 이미지, 오디오, 동영상, PDF를 평가하여 예/아니요 확률, 단일 선택, 점수를 반환합니다
- 모든 답변을 동기식으로 반환하며 스트리밍, Batch API, 컨텍스트 캐싱은 지원하지 않습니다
- 입력 토큰만 과금하며 출력은 무료입니다. 각 요청에 최소 요금이 적용됩니다. [모델 가격](https://evolink.ai/pricing)을 확인하세요
- 대화나 텍스트 생성에는 [Gemini 네이티브 API](/ko/api-manual/language-series/gemini/native-api/native-api-reference)를 사용하세요

> [!NOTE]
>
> **BaseURL**: 기본적으로 `https://direct.evolink.ai`를 사용하며, `https://api.evolink.ai`는 대체 주소입니다.


## OpenAPI

````yaml ko/api-manual/language-series/gemini/decisions/decisions-reference.json POST /v1beta/decisions
openapi: 3.1.0
info:
  title: Gemini Decisions - 전체 매개변수 문서
  description: >-
    Gemini Decisions API를 통해 Gemini Decision 1이 텍스트, 이미지, 오디오, 동영상, PDF 문서에 대한
    유형별 질문에 답합니다. 예/아니요 확률, 고정 목록에서 하나 선택, 순서가 있는 등급별 점수를 반환합니다.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: 프로덕션 환경(권장)
  - url: https://api.evolink.ai
    description: 대체 주소
security:
  - bearerAuth: []
tags:
  - name: Decisions
    description: '구조화된 판단: 분류, 배정, 점수 평가'
paths:
  /v1beta/decisions:
    post:
      tags:
        - Decisions
      summary: Gemini Decision 1(구조화된 판단)
      description: >-
        - `gemini-decision-1`으로 텍스트, 이미지, 오디오, 동영상, PDF를 평가하여 예/아니요 확률, 단일 선택,
        점수를 반환합니다

        - 모든 답변을 동기식으로 반환하며 스트리밍, Batch API, 컨텍스트 캐싱은 지원하지 않습니다

        - 입력 토큰만 과금하며 출력은 무료입니다. 각 요청에 최소 요금이 적용됩니다. [모델
        가격](https://evolink.ai/pricing)을 확인하세요

        - 대화나 텍스트 생성에는 [Gemini 네이티브
        API](/ko/api-manual/language-series/gemini/native-api/native-api-reference)를
        사용하세요
      operationId: createDecision
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DecisionRequest'
            examples:
              noul:
                summary: 예/아니요 질문
                value:
                  model: gemini-decision-1
                  input: >-
                    The blue mug I ordered on Monday arrived cracked on
                    Wednesday.
                  questions:
                    is_damaged:
                      type: noul
                      instructions: Did the item arrive damaged?
              choice:
                summary: 단일 선택(배정)
                value:
                  model: gemini-decision-1
                  input: I was charged twice for my order.
                  questions:
                    department:
                      type: choice
                      instructions: Which department should handle this request?
                      criteria:
                        billing: Payments, invoices, and refunds.
                        technical: Problems using the product.
                        shipping: Delivery and tracking.
                        other: Anything outside these categories.
              score:
                summary: 순서가 있는 등급별 점수
                value:
                  model: gemini-decision-1
                  input: Export fails in Safari but works in Chrome.
                  questions:
                    severity:
                      type: score
                      instructions: How severe is this issue for the user?
                      criteria:
                        - 'Cosmetic: appearance only, no lost functionality.'
                        - >-
                          Workaround available: a task fails, but another way
                          works.
                        - 'Fully blocked: a task fails with no workaround.'
              multiple:
                summary: 한 번의 요청으로 여러 질문
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: >
                        {"order": {"id": "8821", "item": "headphones",
                        "price_usd": 240}, "tier": "Gold"}
                    - type: text
                      text: >-
                        {"message": "Audio cuts out on the left earcup. Fix it
                        today or I cancel my membership."}
                  questions:
                    is_defect:
                      type: noul
                      instructions: Does `message` describe a hardware defect?
                    next_action:
                      type: choice
                      instructions: What is the right resolution given `tier` and `order`?
                      criteria:
                        instant_refund: Refund without return. Low value or clear fault.
                        replacement_shipment: Ship a replacement. Customer returns the original.
                        troubleshooting_flow: The issue may be fixable by the customer.
                        human_escalation: ''
                    churn_risk:
                      type: score
                      instructions: >-
                        How likely is the customer to churn if the issue is not
                        resolved now?
                      criteria:
                        - No churn signal
                        - Mild frustration
                        - Mentions alternatives
                        - Threatens to cancel
              image_base64:
                summary: 인라인 이미지 판단(base64)
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: Look at the image.
                    - type: image
                      data: >-
                        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKklEQVR42mM4ISdHU8QwasGoBaMWjFowasGoBaMWjFowasGoBaMWDBULACXLED1gHZEpAAAAAElFTkSuQmCC
                      mime_type: image/png
                      resolution: low
                  questions:
                    is_red:
                      type: noul
                      instructions: Is the image mostly red?
              image_url:
                summary: URL의 이미지 판단
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: Product photo.
                    - type: image
                      uri: https://www.gstatic.com/webp/gallery/1.jpg
                      mime_type: image/jpeg
                      resolution: low
                  questions:
                    outdoor:
                      type: noul
                      instructions: Is this photo taken outdoors?
                    quality:
                      type: score
                      instructions: How sharp is the photo?
                      criteria:
                        - blurry
                        - ok
                        - sharp
              audio_url:
                summary: URL의 오디오 판단
                value:
                  model: gemini-decision-1
                  input:
                    - type: audio
                      uri: >-
                        https://storage.googleapis.com/generativeai-downloads/data/Apollo-11_Day-01-Highlights-10s.mp3
                      mime_type: audio/mp3
                  questions:
                    mentions_launch:
                      type: noul
                      instructions: >-
                        Is the speaker talking about spaceflight or a rocket
                        launch?
      responses:
        '200':
          description: 질문마다 하나의 답변을 요청의 질문과 같은 키로 반환합니다
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecisionResponse'
              example:
                answers:
                  is_defect:
                    type: noul
                    noul: 0.94
                    confidence: 0.94
                  next_action:
                    type: choice
                    choice: human_escalation
                    probabilities:
                      human_escalation: 0.76
                      replacement_shipment: 0.18
                      troubleshooting_flow: 0.04
                      instant_refund: 0.02
                    confidence: 0.76
                  churn_risk:
                    type: score
                    score: 2.99
                    legend:
                      '0': No churn signal
                      '1': Mild frustration
                      '2': Mentions alternatives
                      '3': Threatens to cancel
                    probabilities:
                      '0': 0
                      '1': 0
                      '2': 0.01
                      '3': 0.99
                    confidence: 0.99
                usage:
                  total_input_tokens: 324
                  input_tokens_by_modality:
                    - modality: text
                      tokens: 324
                  total_output_tokens: 0
                  total_tokens: 324
        '400':
          description: >-
            요청이 유효하지 않습니다. 요청 내용에 오류가 있으면 `code`는 `invalid_request`이며,
            `message`에 문제가 된 필드와 위반한 규칙이 표시됩니다. 일반적인 원인은 지원하지 않는 질문 `type`,
            `criteria`가 없는 `choice` 또는 `score` 질문, 2개 미만의 선택지나 등급, 유효하지 않은 질문 키,
            빈 `input`, 알 수 없는 필드(`stream` 등), 내용과 맞지 않는 `mime_type`, `gs://` URI
            또는 `files/...` 형식의 이름입니다. 입력이 안전 필터에 차단되면 `safety`,
            `prohibited_content`, `blocklist`, `image_safety`, `content_blocked`
            중 하나를 반환합니다. 이 모델을 다른 엔드포인트에서 사용하면 `model_endpoint_mismatch`를 반환합니다.
            HTTP 오류 응답은 과금하지 않습니다. HTTP 200 응답의 안전 필터 피드백은 과금 대상이며, 자세한 내용은
            `usage`를 확인하세요.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_question_type:
                  summary: 지원하지 않는 질문 유형
                  value:
                    error:
                      message: >-
                        The value 'bool' is not supported for 'type' at
                        'questions.q'. Supported values: 'choice', 'noul',
                        'score'. (request id: 20261112194236591724000xVRbpAJk)
                      type: ''
                      param: ''
                      code: invalid_request
                safety_blocked:
                  summary: 안전 필터에 차단된 입력
                  value:
                    error:
                      message: >-
                        Request blocked due to safety violations (harmful
                        content). Please modify your input and retry. (request
                        id: 20261112194253810462000pRk2HvTe)
                      type: ''
                      param: ''
                      code: safety
                model_endpoint_mismatch:
                  summary: 잘못된 엔드포인트로 보낸 모델
                  value:
                    error:
                      allowed_endpoints:
                        - /v1beta/decisions
                      code: model_endpoint_mismatch
                      expected_endpoint: /v1beta/decisions
                      message: >-
                        The model 'gemini-decision-1' cannot be used with
                        /v1/decisions. Allowed endpoints: /v1beta/decisions.
                        (request id: 20261112194245600264000oIU8uBcu)
                      param: null
                      retryable: false
                      type: invalid_request_error
        '401':
          description: '인증 실패: API Key가 없거나 유효하지 않습니다'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: >-
                    API key is required (request id:
                    202611121942512304710006r9sjD0r)
                  param: null
                  type: authentication_error
        '402':
          description: 잔액 부족
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            접근이 거부되었습니다. `permission_denied`: `input`이 Google Files API 파일을
            참조합니다. 이 파일은 업로드한 Google 프로젝트에서만 접근할 수 있으므로 공개되거나 서명된 HTTPS URL 또는
            base64 인라인 데이터로 전달하세요. API Key에 모델 허용 목록이 설정되어 있고 이 모델이 포함되지 않은 경우에도
            이 상태를 반환합니다
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                permission_denied:
                  summary: Google Files API URI 사용
                  value:
                    error:
                      message: >-
                        You do not have permission to access the File abc123xyz
                        or it may not exist. (request id:
                        20261112194238873347000q1Tkqeid)
                      type: ''
                      param: ''
                      code: permission_denied
        '404':
          description: >-
            찾을 수 없습니다. `not_found`: `input`의 미디어 URL을 가져오지 못했습니다. 공개적으로 접근 가능하거나
            올바르게 서명된 HTTPS URL인지 확인하세요. `model_not_found`: 해당 모델은 Decisions API를
            지원하지 않습니다. 현재는 `gemini-decision-1`만 지원합니다
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                url_not_found:
                  summary: 미디어 URL을 가져올 수 없음
                  value:
                    error:
                      message: >-
                        Cannot fetch content from the provided URL. The URL
                        could not be found. Please double-check the URL for any
                        errors. (request id: 20261112194241224738000Vx0uduIQ)
                      type: ''
                      param: ''
                      code: not_found
                model_not_found:
                  summary: Decisions를 지원하지 않는 모델
                  value:
                    error:
                      code: model_not_found
                      message: >-
                        Model 'gemini-3.8-flash' is not available for the
                        Decisions API (POST /v1beta/decisions) with this API
                        key. This error is permanent — do not retry with the
                        same model id. Call GET /v1/models: Decisions models for
                        this endpoint are listed as gemini-decision-*. (request
                        id: 20261112194249376584000tUELY8LN)
                      param: null
                      retryable: false
                      type: invalid_request_error
        '429':
          description: 요청 빈도 제한을 초과했습니다. 나중에 다시 시도하세요
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: 내부 서버 오류
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하세요
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    DecisionRequest:
      type: object
      additionalProperties: false
      required:
        - model
        - input
        - questions
      properties:
        model:
          type: string
          description: >-
            모델 ID입니다. `gemini-decision-1`을 사용하세요.


            이 모델은 대화 모델이 아니며 이 엔드포인트에서만 사용할 수 있습니다. 예를 들어 GPT Decisions 엔드포인트
            `/v1/decisions`로 보내면 `400 model_endpoint_mismatch`를 반환합니다.
          enum:
            - gemini-decision-1
          example: gemini-decision-1
        input:
          description: >-
            모든 질문이 공유하는 입력입니다. 텍스트 문자열, 단일 콘텐츠 블록 또는 콘텐츠 블록 배열(텍스트, 이미지, 오디오,
            동영상, PDF 문서)을 지정합니다. 입력은 비워 둘 수 없습니다. 인접한 텍스트 블록은 구분자 없이 순서대로 이어
            붙여지므로 필요하면 공백이나 줄바꿈을 직접 넣으세요. JSON 데이터는 문자열로 직렬화해 텍스트로 전달하세요.
          oneOf:
            - type: string
              minLength: 1
              example: I was charged twice for my order.
            - $ref: '#/components/schemas/InputContent'
            - type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/InputContent'
        questions:
          type: object
          description: >-
            판단할 질문을 “질문 키 → 질문” 형태의 맵으로 지정합니다(1–1,000개). 키는 직접
            정하며(`[A-Za-z0-9_-]+`에 맞는 1–64자), 답변은 같은 키로 반환됩니다. 모델은 키를 보지 않으므로 완전한
            질문을 `instructions`에 작성하세요.


            | 유형 | 용도 | 주요 결과 |

            |---|---|---|

            | `noul` | 어떤 진술이 맞는지 판단 | `noul`: “예”의 확률(0.01–0.99) |

            | `choice` | 고정 목록에서 하나 선택 | `choice`: 확률이 가장 높은 선택지 ID |

            | `score` | 순서가 있는 등급으로 입력을 평가 | `score`: 확률 가중 등급 점수 |


            각 질문은 같은 입력에 대해 독립적으로 평가되며 서로를 보지 않습니다. 질문 유형은 섞어서 사용할 수 있습니다. 질문 간에
            의존 관계가 있으면 여러 요청으로 나누세요. 입력과 모든 질문은 262,144 토큰의 컨텍스트 창을 공유합니다.
          minProperties: 1
          maxProperties: 1000
          propertyNames:
            pattern: ^[A-Za-z0-9_-]{1,64}$
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/NoulQuestion'
              - $ref: '#/components/schemas/ChoiceQuestion'
              - $ref: '#/components/schemas/ScoreQuestion'
          example:
            is_damaged:
              type: noul
              instructions: Did the item arrive damaged?
      description: >-
        요청 본문은 `model`, `input`, `questions` 세 필드만 허용합니다. 다른 필드(`stream` 등)를
        전달하면 `400 invalid_request`를 반환합니다.
    DecisionResponse:
      type: object
      properties:
        answers:
          type: object
          description: >-
            질문마다 하나의 답변을 요청의 질문과 같은 키로 반환합니다. 각 답변의 `type`은 해당 질문과 같습니다.
            `prompt_feedback.block_reason`이 설정되면 비어 있습니다
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/NoulAnswer'
              - $ref: '#/components/schemas/ChoiceAnswer'
              - $ref: '#/components/schemas/ScoreAnswer'
        usage:
          $ref: '#/components/schemas/DecisionUsage'
        prompt_feedback:
          $ref: '#/components/schemas/PromptFeedback'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: '오류 설명입니다. 끝에 `(request id: ...)`가 붙으며, 문제를 조사할 때 이 ID를 제공하세요'
            type:
              type:
                - string
                - 'null'
              description: 오류 유형이며 비어 있을 수 있습니다
            param:
              type:
                - string
                - 'null'
              description: 관련 매개변수이며 비어 있을 수 있습니다
            code:
              type:
                - string
                - 'null'
              description: >-
                오류 코드입니다. 예: `invalid_request`, `permission_denied`,
                `not_found`, `safety`, `model_not_found`,
                `model_endpoint_mismatch`
    InputContent:
      description: 콘텐츠 블록입니다. `type`에 따라 나머지 필드가 정해집니다
      oneOf:
        - $ref: '#/components/schemas/TextContent'
        - $ref: '#/components/schemas/ImageContent'
        - $ref: '#/components/schemas/AudioContent'
        - $ref: '#/components/schemas/VideoContent'
        - $ref: '#/components/schemas/DocumentContent'
    NoulQuestion:
      type: object
      description: 예/아니요 질문
      required:
        - type
        - instructions
      properties:
        type:
          type: string
          enum:
            - noul
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: object
          description: 선택 사항. 질문만으로 의미가 모호할 때 무엇을 “예”와 “아니요”로 볼지 정의합니다
          properties:
            true_description:
              type: string
              description: 답이 “예”가 되는 조건
            false_description:
              type: string
              description: 답이 “아니요”가 되는 조건
    ChoiceQuestion:
      type: object
      description: 단일 선택 질문
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - choice
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: object
          description: >-
            선택지를 “선택지 ID → 해당 조건 설명” 형태의 맵으로 지정합니다(ID만으로 의미가 분명하면 빈 문자열 `""`을
            사용). 선택지는 2–255개입니다. 선택지 ID는 1–128자(최대 512 UTF-8 바이트)이며, 중간의 ASCII
            공백은 허용되지만 앞뒤 공백과 제어 문자는 허용되지 않습니다. 평가 전에 선택지 ID는 알파벳순(UTF-8 바이트
            순서)으로 정렬되며, 확률이 완전히 같으면 앞선 ID가 선택됩니다. 따라서 어디에도 해당하지 않는 경우를 받는 선택지에는
            `none_of_the_above` 대신 `other`처럼 위치와 무관한 ID를 사용하세요
          minProperties: 2
          maxProperties: 255
          additionalProperties:
            type: string
          example:
            billing: Payments, invoices, and refunds.
            technical: Problems using the product.
            shipping: Delivery and tracking.
            other: Anything outside these categories.
    ScoreQuestion:
      type: object
      description: 점수 평가 질문
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - score
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: array
          description: >-
            낮은 순에서 높은 순으로 정렬한 등급 설명입니다. 비어 있지 않은 문자열 2–255개(대부분 2–10개 권장)를
            지정합니다. 등급 `i`(0부터 시작)는 `criteria[i]`로 설명됩니다. `score`는 등급 번호의 평균이므로
            척도를 선형으로 유지하고 인접한 등급을 명확히 구분하세요
          minItems: 2
          maxItems: 255
          items:
            type: string
            minLength: 1
          example:
            - 'Cosmetic: appearance only, no lost functionality.'
            - 'Workaround available: a task fails, but another way works.'
            - 'Fully blocked: a task fails with no workaround.'
    NoulAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - noul
        noul:
          type: number
          minimum: 0.01
          maximum: 0.99
          description: >-
            답이 “예”일 보정된 확률(0.01–0.99)입니다. “아니요”의 확률은 `1 - noul`입니다. 자체 트래픽에서 라벨을
            붙인 예시를 사용해 이 범위 안에서 임계값을 정하세요
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: 가장 가능성이 높은 답이 맞을 추정 확률로, `max(noul, 1 - noul)`과 같습니다
    ChoiceAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - choice
        choice:
          type: string
          description: 확률이 가장 높은 선택지 ID
        probabilities:
          type: object
          description: 각 선택지 ID의 보정된 확률이며 합계는 1입니다. 맞는 선택지가 없어도 확률은 항상 지정한 선택지에 분배됩니다
          additionalProperties:
            type: number
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: >-
            선택된 선택지의 확률(0–1)입니다. 낮으면 사람이 검토하거나, 범위 해당 여부를 묻는 별도의 예/아니요 질문을 함께
            사용하는 것을 고려하세요
    ScoreAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - score
        score:
          type: number
          description: >-
            등급 번호의 확률 가중 평균(`sum(k × probability_k)`)으로, 두 등급 사이의 값이 될 수 있습니다.
            가장 높은 등급 번호로 나누면 0–1로 정규화할 수 있습니다
        probabilities:
          type: object
          description: >-
            각 등급 번호(`"0"`, `"1"`, ...)의 보정된 확률이며 합계는 1입니다. 하나의 등급이 필요하면 확률이 가장
            높은 번호를 선택하세요
          additionalProperties:
            type: number
        legend:
          type: object
          description: 각 등급 번호의 설명(`criteria`에서 가져옴)
          additionalProperties:
            type: string
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: '`probabilities`에서 가장 높은 확률(0–1)'
    DecisionUsage:
      type: object
      description: >-
        토큰 사용량입니다. 입력 토큰만 과금합니다(`total_input_tokens`). 텍스트, 이미지, 오디오, 동영상, PDF
        토큰은 모두 같은 단가이며 출력은 항상 0입니다. 각 요청에는 최소 요금이 적용됩니다. 현재 가격은 [모델
        가격](https://evolink.ai/pricing)을 확인하세요. 컨텍스트 캐싱은 지원하지 않으며, 반복되는 입력도 요청마다
        별도로 과금합니다. HTTP 200 응답에 `prompt_feedback.block_reason`이 포함되어도 입력 사용량에 따라
        과금합니다. 유효한 사용량이 반환되지 않으면 추정치로 정산합니다.
      properties:
        total_input_tokens:
          type: integer
          description: >-
            공유 입력과 모든 질문에 대한 과금 대상 입력 토큰입니다. 공유 입력은 질문 수와 관계없이 요청당 한 번만 계산되며, 각
            질문은 자신의 instructions와 criteria만큼만 추가됩니다
          example: 324
        input_tokens_by_modality:
          type: array
          description: 모달리티별 입력 토큰
          items:
            type: object
            properties:
              modality:
                type: string
                description: >-
                  모달리티: `text`, `image`, `audio` 중 하나입니다. 동영상 프레임과 PDF 페이지 이미지는
                  `image`로 계산됩니다
              tokens:
                type: integer
                description: 해당 모달리티의 토큰 수
        total_output_tokens:
          type: integer
          description: 항상 0입니다. 이 모델은 텍스트를 생성하지 않습니다
          example: 0
        total_tokens:
          type: integer
          description: 총 토큰 수
          example: 324
    PromptFeedback:
      type: object
      description: >-
        입력 콘텐츠 필터의 피드백입니다. `block_reason`이 설정되면 입력이 차단된 것이며, 질문은 평가되지 않고
        `answers`는 비어 있습니다. HTTP 200으로 반환되면 과금 대상입니다. 자세한 내용은 `usage`를 확인하세요.
      properties:
        block_reason:
          type: string
          enum:
            - safety
            - other
            - blocklist
            - prohibited_content
            - image_safety
          description: 입력이 차단된 이유
        block_reason_message:
          type: string
          description: 차단 이유에 대한 자세한 설명
    TextContent:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - text
        text:
          type: string
          description: 텍스트 내용
    ImageContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - image
        data:
          type: string
          contentEncoding: base64
          description: >-
            base64로 인코딩한 파일 바이트(인라인 데이터는 요청당 합계 최대 100MB). `data`와 `uri` 중 하나를
            지정하세요
        uri:
          type: string
          format: uri
          description: >-
            파일의 공개 또는 서명된 HTTPS URL(최대 15MB). Google Files API URI, `gs://` URI,
            `files/...` 형식의 이름, YouTube URL은 지원하지 않습니다. `data`와 `uri` 중 하나를
            지정하세요
        mime_type:
          type: string
          enum:
            - image/png
            - image/jpeg
            - image/webp
            - image/heic
            - image/heif
            - image/gif
            - image/bmp
            - image/tiff
          description: >-
            MIME 유형입니다. 실제 파일 형식과 일치해야 하며 `application/octet-stream` 같은 일반 유형은
            거부됩니다
        resolution:
          type: string
          enum:
            - low
            - medium
            - high
            - ultra_high
          description: 선택 사항. 미디어 해상도로, 토큰 사용량과 세부 묘사 수준을 조절합니다
    AudioContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - audio
        data:
          type: string
          contentEncoding: base64
          description: >-
            base64로 인코딩한 파일 바이트(인라인 데이터는 요청당 합계 최대 100MB). `data`와 `uri` 중 하나를
            지정하세요
        uri:
          type: string
          format: uri
          description: >-
            파일의 공개 또는 서명된 HTTPS URL(최대 15MB). Google Files API URI, `gs://` URI,
            `files/...` 형식의 이름, YouTube URL은 지원하지 않습니다. `data`와 `uri` 중 하나를
            지정하세요
        mime_type:
          type: string
          enum:
            - audio/wav
            - audio/mp3
            - audio/mpeg
            - audio/aiff
            - audio/aac
            - audio/ogg
            - audio/flac
            - audio/m4a
            - audio/opus
            - audio/webm
            - audio/l16
            - audio/alaw
            - audio/mulaw
          description: >-
            MIME 유형입니다. 실제 파일 형식과 일치해야 하며 `application/octet-stream` 같은 일반 유형은
            거부됩니다
    VideoContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - video
        data:
          type: string
          contentEncoding: base64
          description: >-
            base64로 인코딩한 파일 바이트(인라인 데이터는 요청당 합계 최대 100MB). `data`와 `uri` 중 하나를
            지정하세요
        uri:
          type: string
          format: uri
          description: >-
            파일의 공개 또는 서명된 HTTPS URL(최대 15MB). Google Files API URI, `gs://` URI,
            `files/...` 형식의 이름, YouTube URL은 지원하지 않습니다. `data`와 `uri` 중 하나를
            지정하세요
        mime_type:
          type: string
          enum:
            - video/mp4
            - video/mpeg
            - video/mov
            - video/avi
            - video/webm
            - video/wmv
            - video/x-flv
            - video/3gpp
          description: >-
            MIME 유형입니다. 실제 파일 형식과 일치해야 하며 `application/octet-stream` 같은 일반 유형은
            거부됩니다
        resolution:
          type: string
          enum:
            - low
            - medium
            - high
          description: 선택 사항. 미디어 해상도로, 토큰 사용량과 세부 묘사 수준을 조절합니다. `ultra_high`는 이미지에만 적용됩니다
    DocumentContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - document
        data:
          type: string
          contentEncoding: base64
          description: base64로 인코딩한 PDF 바이트(최대 50MB). `data`와 `uri` 중 하나를 지정하세요
        uri:
          type: string
          format: uri
          description: >-
            파일의 공개 또는 서명된 HTTPS URL(최대 15MB). Google Files API URI, `gs://` URI,
            `files/...` 형식의 이름, YouTube URL은 지원하지 않습니다. `data`와 `uri` 중 하나를
            지정하세요
        mime_type:
          type: string
          enum:
            - application/pdf
          description: >-
            MIME 유형입니다. 실제 파일 형식과 일치해야 하며 `application/octet-stream` 같은 일반 유형은
            거부됩니다
    QuestionInstructions:
      description: >-
        `input`에 대해 판단할 질문으로, 완전한 문장으로 작성하세요. 텍스트만 허용하며 문자열, 텍스트 블록 또는 텍스트 블록
        배열을 지정합니다
      oneOf:
        - type: string
          minLength: 1
        - $ref: '#/components/schemas/TextContent'
        - type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/TextContent'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |-
        EvoLink API Key를 Bearer 토큰으로 사용하여 인증합니다.

        **API Key 발급:**

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

        **요청 헤더:**
        ```
        Authorization: Bearer YOUR_API_KEY
        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.