경로 매핑 (Route Mapping)
빠른 마이그레이션 레시피
OpenAI에서 TokenLab으로
SDKbase_url / baseURL만 https://api.tokenlab.sh/v1로 변경하세요. 롤아웃이 더 쉽다면 기존 OpenAI API 키 환경 변수 이름을 그대로 유지하고, GET /v1/models를 확인한 후 모델 ID를 교체하세요.
OpenRouter에서 TokenLab으로
앱에서 이전에 OpenRouter의 OpenAI 호환 기본 URL을 사용하던 곳에https://api.tokenlab.sh/v1을 사용하세요. 공급자 접두사가 붙은 모델 ID를 제거하고 /v1/models에서 제공하는 TokenLab 공개 모델 ID를 사용하세요. 워크로드에 Claude Messages나 Gemini generateContent가 필요한 경우, OpenAI 호환 채팅으로 강제하지 말고 네이티브 TokenLab 엔드포인트로 이동하세요.
LiteLLM에서 TokenLab으로
LiteLLM의custom_openai/<model> 경로와 api_base: https://api.tokenlab.sh/v1을 사용하세요. 애플리케이션 프롬프트를 변경하지 않고도 라우팅 정책을 변경할 수 있도록 LiteLLM 별칭을 실제 TokenLab 모델 ID와 분리하여 관리하세요.
TokenLab을 통한 Claude Messages
Anthropic SDK 클라이언트를https://api.tokenlab.sh로 지정하고 messages.create를 호출하세요. SDK 기본 URL에 /v1을 추가하지 마세요. SDK가 /v1/messages 경로를 처리합니다.
TokenLab을 통한 Gemini Native
Gemini 페이로드를https://api.tokenlab.sh/v1beta/models/{model}:generateContent에 유지하세요. 앱이 Gemini 동작에 의존하는 경우 Gemini 네이티브 contents, parts, 파일, 캐시된 콘텐츠, 함수 선언 및 내장 도구는 이 경로에 유지되어야 합니다.
OpenAI 호환 마이그레이션
GET /v1/models로 모델 ID를 검증하세요. 이미지 생성의 경우 model을 명시적으로 전송하고, 이미지 모델은 채팅 모델보다 차이가 크므로 이미지 가이드를 읽어보시기 바랍니다.
Anthropic 마이그레이션
/v1/messages를 사용하세요. 의도적으로 OpenAI 호환 동작 변경을 원하는 경우가 아니라면 Anthropic 전용 필드를 Chat Completions로 변환하지 마세요.
Gemini 마이그레이션
/v1beta 경로에 유지하세요.
미디어 마이그레이션
GET /v1/models?recommended_for=image|video|music|3d를 쿼리합니다.- 목록 응답에서
GET /v1/models를 읽고, 가능한 경우 전체GET /v1/models/{model}을 확인합니다. - 특히 이미지 엔드포인트의 경우
model을 명시적으로 전송합니다. - 비동기 작업을 위해
task_id,poll_url, 엔드포인트, 모델 및 자체 작업 ID를 저장합니다. - 비용 조정은 공급자 작업 ID가 아닌 사용 기록 및
billing_transaction_id를 통해 수행합니다.
프로덕션 롤아웃 계획
마이그레이션 주의 사항
- 앱이 네이티브 Anthropic, Gemini 또는 Responses 동작을 필요로 하는 경우 모든 모델을 하나의 OpenAI Chat Completions 경로 뒤에 두지 마세요.
- 이전 이미지 기본값을 가정하지 마세요.
model을 명시적으로 전송하세요. - 작업이 이미 생성되었는지 확인하지 않고 비동기 생성 요청을 재시도하지 마세요.
- 로그나 UI에 공급자별 식별자를 노출하지 마세요.
- 공급자 작업 ID로 결제 내역을 비교하지 마세요. TokenLab 사용 기록을 사용하세요.