기존 OpenAI SDK 통합과 이식 가능한 채팅 또는 임베딩 플로우에는 이 호환 경로를 사용하세요. Claude 또는 Gemini 네이티브 동작에는 아래의 Anthropic 또는 Gemini 형식을 사용하세요.
from openai import OpenAIclient = OpenAI( api_key="sk-your-tokenlab-key", base_url="https://api.tokenlab.sh/v1")# Portable chat works across many modelsresponse = client.chat.completions.create( model="claude-sonnet-4-6", # Claude via OpenAI format messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ])
Anthropic Messages API의 네이티브 형식입니다. 확장 사고와 같은 Claude 전용 기능을 사용하려면 필요합니다.
from anthropic import Anthropicclient = Anthropic( api_key="sk-your-tokenlab-key", base_url="https://api.tokenlab.sh" # No /v1 suffix!)message = client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, system="You are a helpful assistant.", # Separate system field messages=[ {"role": "user", "content": "Hello!"} ])
Gemini Files 및 Cache: 네이티브 Gemini 경로에서 /upload/v1beta/files, /v1beta/files, /v1beta/files:register, /v1beta/cachedContents를 사용할 수 있습니다. Files는 Gemini File API 호환 업스트림 채널을 사용하고, 명시적 Cache 리소스는 Vertex AI 채널로도 라우팅할 수 있습니다. TokenLab를 통해 생성한 리소스는 같은 업스트림 채널/key에 바인딩되며 이후 generateContent 호출도 이 바인딩을 사용합니다.
함수 도구는 대상 경로가 지원할 때 형식 간 변환할 수 있습니다. 공급자 네이티브 도구는 해당 네이티브 경로에 그대로 남아 있어야 합니다.
OpenAI Responses의 호스팅 및 네이티브 도구, 예를 들어 tool_search, web_search, file_search, code_interpreter, MCP, shell/apply_patch, computer-use 도구는 /v1/responses가 필요합니다.
Anthropic server/native 도구, 예를 들어 web_search_*, web_fetch_*, code_execution_*, tool_search_*, bash, computer-use, text-editor 도구는 /v1/messages가 필요합니다.
Gemini 내장 도구, 예를 들어 googleSearch, codeExecution, urlContext, computerUse 및 유사한 tools 필드는 /v1beta가 필요합니다.
TokenLab가 네이티브 도구가 포함된 요청을 네이티브 지원 업스트림 경로로 라우팅할 수 없으면, 도구를 조용히 제거하거나 Chat Completions 함수처럼 처리하지 않고 명시적인 unsupported-field 오류를 반환합니다. 사용자 정의 함수 도구는 계속 가장 이식성 높은 도구 경로입니다.
# Before (OpenAI)client = OpenAI(api_key="sk-openai-key")# After (TokenLab)client = OpenAI( api_key="sk-tokenlab-key", base_url="https://api.tokenlab.sh/v1" # Add this line)# That's it! Same code works
# Before (Anthropic)client = Anthropic(api_key="sk-ant-key")# After (TokenLab)client = Anthropic( api_key="sk-tokenlab-key", base_url="https://api.tokenlab.sh" # Add this line (no /v1!))