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

# 모델 변형

> 모델 ID에 접미사를 추가하여 라우팅 동작을 제어하세요——속도, 비용, 추론 깊이, 또는 컨텍스트 길이를 최적화합니다.

모델 변형을 사용하면 모델 ID에 접미사를 추가하여 라우팅 동작을 변경할 수 있습니다. 별도의 `provider` 객체를 구성하는 대신, 변형은 모델 문자열에 직접 내장된 간결한 축약 표기입니다.

```json theme={null}
{"model": "openai/gpt-5.4:nitro"}
```

***

## `:nitro` — 최대 처리량

`:nitro`를 추가하면 모델의 최고 처리량 인스턴스로 라우팅됩니다. `provider.sort = "throughput"` 설정과 동일합니다.

**최적 용도**: 실시간 애플리케이션, 인터랙티브 채팅, 스트리밍 UI

```json theme={null}
{"model": "openai/gpt-5.4:nitro"}
```

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    import OpenAI from "openai";

    const client = new OpenAI({
      baseURL: "https://api.arouter.ai/v1",
      apiKey: "lr_live_xxxx",
    });

    const response = await client.chat.completions.create({
      model: "openai/gpt-5.4:nitro",
      messages: [{ role: "user", content: "Hello!" }],
    });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    from openai import OpenAI

    client = OpenAI(
        base_url="https://api.arouter.ai/v1",
        api_key="lr_live_xxxx",
    )

    response = client.chat.completions.create(
        model="openai/gpt-5.4:nitro",
        messages=[{"role": "user", "content": "Hello!"}],
    )
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl https://api.arouter.ai/v1/chat/completions \
      -H "Authorization: Bearer lr_live_xxxx" \
      -H "Content-Type: application/json" \
      -d '{"model": "openai/gpt-5.4:nitro", "messages": [{"role": "user", "content": "Hello!"}]}'
    ```
  </Tab>
</Tabs>

***

## `:floor` — 최저 비용

`:floor`를 추가하면 모델의 최저 비용 인스턴스로 라우팅됩니다. `provider.sort = "price"` 설정과 동일합니다.

**최적 용도**: 배치 처리, 오프라인 워크로드, 비용 중시 파이프라인

```json theme={null}
{"model": "openai/gpt-5.4:floor"}
```

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    const response = await client.chat.completions.create({
      model: "openai/gpt-5.4:floor",
      messages: [{ role: "user", content: "Summarize this document." }],
    });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    response = client.chat.completions.create(
        model="openai/gpt-5.4:floor",
        messages=[{"role": "user", "content": "Summarize this document."}],
    )
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl https://api.arouter.ai/v1/chat/completions \
      -H "Authorization: Bearer lr_live_xxxx" \
      -H "Content-Type: application/json" \
      -d '{"model": "openai/gpt-5.4:floor", "messages": [{"role": "user", "content": "Summarize this document."}]}'
    ```
  </Tab>
</Tabs>

***

## `:free` — 무료 티어

`:free`를 추가하면 모델의 무료 티어 인스턴스로 라우팅됩니다. 무료 티어 인스턴스는 많은 인기 모델에서 사용 가능하며 속도 제한이 적용됩니다.

**최적 용도**: 프로토타이핑, 개발, 소량 테스트

```json theme={null}
{"model": "meta-llama/llama-4-maverick:free"}
```

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    const response = await client.chat.completions.create({
      model: "meta-llama/llama-4-maverick:free",
      messages: [{ role: "user", content: "Hello!" }],
    });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    response = client.chat.completions.create(
        model="meta-llama/llama-4-maverick:free",
        messages=[{"role": "user", "content": "Hello!"}],
    )
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl https://api.arouter.ai/v1/chat/completions \
      -H "Authorization: Bearer lr_live_xxxx" \
      -H "Content-Type: application/json" \
      -d '{"model": "meta-llama/llama-4-maverick:free", "messages": [{"role": "user", "content": "Hello!"}]}'
    ```
  </Tab>
</Tabs>

<Note>
  무료 티어 모델은 더 엄격한 속도 제한이 적용되며 컨텍스트 창이 줄어들 수 있습니다. 자세한 내용은 [속도 제한](/ko/guides/limits)을 참조하세요.
</Note>

***

## `:thinking` — 확장 추론

`:thinking`을 추가하면 지원되는 모델에서 확장 chain-of-thought 추론이 활성화됩니다（예: DeepSeek R1, 확장 사고가 가능한 Claude, Gemini Flash Thinking）.

**최적 용도**: 복잡한 추론, 수학, 코딩, 다단계 문제

```json theme={null}
{"model": "deepseek/deepseek-r1:thinking"}
```

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    const response = await client.chat.completions.create({
      model: "deepseek/deepseek-r1:thinking",
      messages: [
        { role: "user", content: "Prove that √2 is irrational." }
      ],
    });

    // 추론 토큰은 usage에서 반환됨
    console.log(response.usage);
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    response = client.chat.completions.create(
        model="deepseek/deepseek-r1:thinking",
        messages=[{"role": "user", "content": "Prove that √2 is irrational."}],
    )

    # 추론 토큰은 usage에서 반환됨
    print(response.usage)
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl https://api.arouter.ai/v1/chat/completions \
      -H "Authorization: Bearer lr_live_xxxx" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "deepseek/deepseek-r1:thinking",
        "messages": [{"role": "user", "content": "Prove that √2 is irrational."}]
      }'
    ```
  </Tab>
</Tabs>

`:thinking`이 활성화되면, 추론 토큰이 응답의 `usage.completion_tokens_details`에 나타납니다:

```json theme={null}
{
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 850,
    "total_tokens": 870,
    "completion_tokens_details": {
      "reasoning_tokens": 720
    }
  }
}
```

청구 및 사용 세부 정보는 [추론 토큰](/ko/guides/best-practices/reasoning-tokens)을 참조하세요.

***

## `:extended` — 확장 컨텍스트

`:extended`를 추가하면 기본값보다 더 큰 컨텍스트 창을 가진 모델 버전에 액세스할 수 있습니다.

**최적 용도**: 긴 문서 처리, 대규모 코드베이스, 긴 대화

```json theme={null}
{"model": "google/gemini-2.5-flash:extended"}
```

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    const response = await client.chat.completions.create({
      model: "google/gemini-2.5-flash:extended",
      messages: [{ role: "user", content: "Analyze this 500-page report..." }],
    });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    response = client.chat.completions.create(
        model="google/gemini-2.5-flash:extended",
        messages=[{"role": "user", "content": "Analyze this 500-page report..."}],
    )
    ```
  </Tab>
</Tabs>

***

## `:exacto` — 도구 호출 품질

`:exacto`를 추가하면 도구 호출 요청에 대한 품질 순위 라우팅을 명시적으로 활성화합니다. ARouter는 가장 저렴한 옵션 대신 도구 호출 품질 점수가 가장 높은 제공업체 엔드포인트를 선택합니다.

**최적 용도**: 스키마 준수와 인수 정확성이 비용보다 중요한 프로덕션 도구 호출 파이프라인

```json theme={null}
{"model": "openai/gpt-5.4:exacto"}
```

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    const response = await client.chat.completions.create({
      model: "openai/gpt-5.4:exacto",
      messages: [{ role: "user", content: "Get the weather in Shanghai and Tokyo" }],
      tools: [weatherTool],
    });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    response = client.chat.completions.create(
        model="openai/gpt-5.4:exacto",
        messages=[{"role": "user", "content": "Get the weather in Shanghai and Tokyo"}],
        tools=[weather_tool],
    )
    ```
  </Tab>
</Tabs>

**Auto Exacto와의 차이점**: [Auto Exacto](/ko/guides/routing/auto-exacto)는 `tools`가 있을 때 자동으로 활성화됩니다. `:exacto`는 도구가 없는 요청에서도 품질 순위 라우팅을 강제합니다——모델이 도구를 호출하는지 여부에 관계없이 일관된 제공업체 선택 동작이 필요할 때 유용합니다.

***

## 변형 조합

일부 변형은 조합할 수 있습니다:

```json theme={null}
{"model": "meta-llama/llama-4-maverick:free:nitro"}
```

<Note>
  모든 조합이 유효하지는 않습니다. 모델에서 요청된 조합을 사용할 수 없는 경우 ARouter는 오류를 반환합니다.
</Note>

***

## 변형 참조

| 접미사         | 효과              | 동등한 `provider` 설정              | 최적 용도                                                    |
| ----------- | --------------- | ------------------------------ | -------------------------------------------------------- |
| `:nitro`    | 최고 처리량          | `provider.sort = "throughput"` | 실시간 / 인터랙티브                                              |
| `:floor`    | 최저 비용           | `provider.sort = "price"`      | 배치 / 오프라인                                                |
| `:free`     | 무료 티어（속도 제한 있음） | —                              | 개발 / 프로토타이핑                                              |
| `:thinking` | 확장 추론 모드        | —                              | 복잡한 추론                                                   |
| `:extended` | 더 큰 컨텍스트 창      | —                              | 긴 문서                                                     |
| `:online`   | 웹 검색（지원 종료）     | `plugins: [{id: "web"}]`       | 대신 [서버 도구](/ko/guides/features/server-tools/overview) 사용 |
| `:exacto`   | 도구 호출 품질 라우팅    | `provider.sort = "quality"`    | 프로덕션 도구 호출                                               |

***

## 변형이 라우팅에 미치는 영향

변형은 서버 측에서 파싱되며 ARouter가 선택하는 엔드포인트에 영향을 줍니다:

1. 기본 모델 ID（예: `openai/gpt-5.4`）가 모델 패밀리를 식별
2. 접미사가 엔드포인트 선택 기준을 변경
3. ARouter는 `response.model`에 실제 사용된 모델을 반환

서비스된 정확한 모델 변형을 확인하려면 항상 `response.model`을 확인하세요:

```json theme={null}
{
  "model": "openai/gpt-5.4:nitro",
  "choices": [...],
  "usage": {...}
}
```

변형이 제공하는 것보다 더 세밀한 제어가 필요한 경우 [제공업체 라우팅](/ko/provider-routing)에서 전체 `provider` 객체 옵션을 참조하세요.
