AI의 API를 여러 개 계약하게 되면, '어떤 모델에 전달할지'에 대한 판단이 코드 곳곳에 흩어지게 됩니다. 분기가 늘어나고 모델명 변경이 테스트를 망가뜨리며, 장애 발생 시 전환 처리는 아무도 작성하지 않게 됩니다.
AICraft는 OpenAI 호환의 단일 엔드포인트로 100개 이상의 모델을 다루는 서비스이지만, 이 글에서는 홍보 목적이 아니라 model: "auto"가 내부적으로 무엇을 하는지, 문서에 명시된 범위와 응답 헤더를 통해 정리합니다.
3줄 만에 호출하기
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://aicraftapi.net/v1")
res = client.chat.completions.create(...)
base_url은 /v1로 끝내야 합니다. /chat/completions까지 붙이면 클라이언트 측에서도 추가되어 경로가 중복되고 404 에러가 발생합니다.
auto는 무엇을 하는가
model: "auto"를 보내면, 라우터(router)가 요청을 12가지 태스크 카테고리로 분류하고, 해당 카테고리에 지정된 모델 체인(model chain)을 primary → secondary → tertiary → last resort 순서로 따라갑니다. 앞 단계가 실패하면 자동으로 다음 단계로 넘어갑니다.
| 카테고리 | Primary | Fallback |
|---|
| Coding | deepseek/deepseek-v4-pro | deepseek/deepseek-v4-flash |
| Chinese | qwen/qwen3.7-max | z-ai/glm-5 |
| Translation | qwen/qwen3.6-plus | deepseek/deepseek-v4-flash |
| Reasoning | z-ai/glm-5 | deepseek/deepseek-v4-pro-202606 |
| Math | deepseek/deepseek-v4-pro-202606 | z-ai/glm-5 |
| Creative | minimax/minimax-m3 | deepseek/deepseek-v4-flash |
| Complex | claude-4.5-sonnet | openai/gpt-5.4 |
| Fast | deepseek/deepseek-v4-flash | qwen/qwen3.6-plus |
| Chat | qwen/qwen3.6-plus | deepseek/deepseek-v4-flash |
| Summary | deepseek/deepseek-v3.2-251201 | qwen/qwen3.6-plus |
| Writing | qwen/qwen3.7-max | deepseek/deepseek-v4-flash |
| Analysis | x-ai/grok-4.3 | claude-4.5-sonnet |
이것은 문서에 실린 표를 그대로 옮긴 것입니다. 모델은 교체되므로, 실제로 사용할 때는 Model Catalog의 ID를 확인해 주세요.
무엇이 선택되었는지 헤더에서 알 수 있다
auto를 블랙박스로 만들고 싶지 않은 경우를 위해, 응답에는 다음 4가지 헤더가 추가됩니다.
| 헤더 | 내용 |
|---|
X-AICraft-Mode | auto인지 manual인지 |
X-AICraft-Category | 판별된 태스크 카테고리 |
X-AICraft-Routed-To | 실제로 사용된 모델 |
X-AICraft-Savings | GPT-4와 비교한 비용 차이 |
res = client.chat.completions.with_raw_response.create(
model="auto",
messages=[{"role": "user", "content": "이 함수의 버그를 찾아줘"}],
...
로그에 X-AICraft-Routed-To
남겨두면 나중에 '이 응답은 어떤 모델의 것인가'를 추적할 수 있습니다. 분류가 예상과 다를 때, 프롬프트를 수정해야 할지 아니면 모델을 명시해야 할지를 판단할 수 있습니다.
모델 ID를 기재했을 경우
model
에는 auto 외에 vendor/model 형식의 소문자 ID를 전달할 수 있습니다. 예를 들어 deepseek/deepseek-v4-pro가 있습니다.
여기서 중요한 것은, 명시된 ID는 그대로 사용된다는 점입니다. 라우터가 다른 모델로 교체하지 않습니다. X-AICraft-Mode는 manual이 됩니다.
즉, 사용 방법은 다음과 같습니다.
- 출력을 고정하고 싶을 때, 평가를 통일하고 싶을 때 → 모델 ID를 명시합니다.
- 일단 작동만 시키고 싶거나, 비용과 속도의 균형을 맡기고 싶을 때 →
auto
v6에서 추가된 동작
Auto Router v6에는 라우터의 판단이 너무 고정되지 않도록 하는 메커니즘이 들어갔습니다.
- Lock Decay— 7일 동안 사용되지 않은 모델 설정은 자동으로 해제됩니다. -
- Drift Detection— 작업 종류가 40% 이상 벗어나면 설정을 해제합니다. -
- Fault Self-Healing— 실패한 모델은 1시간 동안 우회됩니다. -
- Community Cold Start— 신규 사용자는 커뮤니티의 실적을 통해 초기 설정을 학습합니다. -
- Feedback API—
POST /v1/feedback
를 통해 선호를 라우터에게 알려줄 수 있습니다.
'한 번 결정된 라우팅이 그대로 오래되는' 문제에 대한 답변이 Lock Decay와 Drift Detection이며, 장애 발생 시 우회하는 것이 Fault Self-Healing이라는 정리입니다.
어려움을 겪기 쉬운 부분
| 증상 | 대처법 |
|---|
| 504가 반환되거나 응답이 길게 없음 | 긴 대화라면 deepseek/deepseek-v4-flash와 같은 고속 모델로 전환합니다. 컨텍스트를 줄여 재시도합니다. |
Model not found | Model Catalog에서 ID를 그대로 복사합니다. 헷갈리면 auto |
| 429 rate limit | 요청 빈도를 낮춥니다. |
모델 목록은 GET /v1/models로 가져올 수 있지만, 이 엔드포인트는 인증이 필요합니다. API 키 없이 호출하면 401이 반환됩니다.
curl https://aicraftapi.net/v1/models \
-H