모델 변형을 사용하면 모델 ID에 접미사를 추가하여 라우팅 동작을 변경할 수 있습니다. 별도의 provider 객체를 구성하는 대신, 변형은 모델 문자열에 직접 내장된 간결한 축약 표기입니다.
{"model": "openai/gpt-5.4:nitro"}
:nitro — 최대 처리량
:nitro를 추가하면 모델의 최고 처리량 인스턴스로 라우팅됩니다. provider.sort = "throughput" 설정과 동일합니다.
최적 용도: 실시간 애플리케이션, 인터랙티브 채팅, 스트리밍 UI
{"model": "openai/gpt-5.4:nitro"}
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!" }],
});
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!"}],
)
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!"}]}'
:floor — 최저 비용
:floor를 추가하면 모델의 최저 비용 인스턴스로 라우팅됩니다. provider.sort = "price" 설정과 동일합니다.
최적 용도: 배치 처리, 오프라인 워크로드, 비용 중시 파이프라인
{"model": "openai/gpt-5.4:floor"}
const response = await client.chat.completions.create({
model: "openai/gpt-5.4:floor",
messages: [{ role: "user", content: "Summarize this document." }],
});
response = client.chat.completions.create(
model="openai/gpt-5.4:floor",
messages=[{"role": "user", "content": "Summarize this document."}],
)
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."}]}'
:free — 무료 티어
:free를 추가하면 모델의 무료 티어 인스턴스로 라우팅됩니다. 무료 티어 인스턴스는 많은 인기 모델에서 사용 가능하며 속도 제한이 적용됩니다.
최적 용도: 프로토타이핑, 개발, 소량 테스트
{"model": "meta-llama/llama-4-maverick:free"}
const response = await client.chat.completions.create({
model: "meta-llama/llama-4-maverick:free",
messages: [{ role: "user", content: "Hello!" }],
});
response = client.chat.completions.create(
model="meta-llama/llama-4-maverick:free",
messages=[{"role": "user", "content": "Hello!"}],
)
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!"}]}'
무료 티어 모델은 더 엄격한 속도 제한이 적용되며 컨텍스트 창이 줄어들 수 있습니다. 자세한 내용은 속도 제한을 참조하세요.
:thinking — 확장 추론
:thinking을 추가하면 지원되는 모델에서 확장 chain-of-thought 추론이 활성화됩니다(예: DeepSeek R1, 확장 사고가 가능한 Claude, Gemini Flash Thinking).
최적 용도: 복잡한 추론, 수학, 코딩, 다단계 문제
{"model": "deepseek/deepseek-r1:thinking"}
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);
response = client.chat.completions.create(
model="deepseek/deepseek-r1:thinking",
messages=[{"role": "user", "content": "Prove that √2 is irrational."}],
)
# 추론 토큰은 usage에서 반환됨
print(response.usage)
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."}]
}'
:thinking이 활성화되면, 추론 토큰이 응답의 usage.completion_tokens_details에 나타납니다:
{
"usage": {
"prompt_tokens": 20,
"completion_tokens": 850,
"total_tokens": 870,
"completion_tokens_details": {
"reasoning_tokens": 720
}
}
}
청구 및 사용 세부 정보는 추론 토큰을 참조하세요.
:extended — 확장 컨텍스트
:extended를 추가하면 기본값보다 더 큰 컨텍스트 창을 가진 모델 버전에 액세스할 수 있습니다.
최적 용도: 긴 문서 처리, 대규모 코드베이스, 긴 대화
{"model": "google/gemini-2.5-flash:extended"}
const response = await client.chat.completions.create({
model: "google/gemini-2.5-flash:extended",
messages: [{ role: "user", content: "Analyze this 500-page report..." }],
});
response = client.chat.completions.create(
model="google/gemini-2.5-flash:extended",
messages=[{"role": "user", "content": "Analyze this 500-page report..."}],
)
:exacto — 도구 호출 품질
:exacto를 추가하면 도구 호출 요청에 대한 품질 순위 라우팅을 명시적으로 활성화합니다. ARouter는 가장 저렴한 옵션 대신 도구 호출 품질 점수가 가장 높은 제공업체 엔드포인트를 선택합니다.
최적 용도: 스키마 준수와 인수 정확성이 비용보다 중요한 프로덕션 도구 호출 파이프라인
{"model": "openai/gpt-5.4:exacto"}
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],
});
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],
)
Auto Exacto와의 차이점: Auto Exacto는 tools가 있을 때 자동으로 활성화됩니다. :exacto는 도구가 없는 요청에서도 품질 순위 라우팅을 강제합니다——모델이 도구를 호출하는지 여부에 관계없이 일관된 제공업체 선택 동작이 필요할 때 유용합니다.
변형 조합
일부 변형은 조합할 수 있습니다:
{"model": "meta-llama/llama-4-maverick:free:nitro"}
모든 조합이 유효하지는 않습니다. 모델에서 요청된 조합을 사용할 수 없는 경우 ARouter는 오류를 반환합니다.
변형 참조
| 접미사 | 효과 | 동등한 provider 설정 | 최적 용도 |
|---|
:nitro | 최고 처리량 | provider.sort = "throughput" | 실시간 / 인터랙티브 |
:floor | 최저 비용 | provider.sort = "price" | 배치 / 오프라인 |
:free | 무료 티어(속도 제한 있음) | — | 개발 / 프로토타이핑 |
:thinking | 확장 추론 모드 | — | 복잡한 추론 |
:extended | 더 큰 컨텍스트 창 | — | 긴 문서 |
:online | 웹 검색(지원 종료) | plugins: [{id: "web"}] | 대신 서버 도구 사용 |
:exacto | 도구 호출 품질 라우팅 | provider.sort = "quality" | 프로덕션 도구 호출 |
변형이 라우팅에 미치는 영향
변형은 서버 측에서 파싱되며 ARouter가 선택하는 엔드포인트에 영향을 줍니다:
- 기본 모델 ID(예:
openai/gpt-5.4)가 모델 패밀리를 식별
- 접미사가 엔드포인트 선택 기준을 변경
- ARouter는
response.model에 실제 사용된 모델을 반환
서비스된 정확한 모델 변형을 확인하려면 항상 response.model을 확인하세요:
{
"model": "openai/gpt-5.4:nitro",
"choices": [...],
"usage": {...}
}
변형이 제공하는 것보다 더 세밀한 제어가 필요한 경우 제공업체 라우팅에서 전체 provider 객체 옵션을 참조하세요.