메인 콘텐츠로 건너뛰기

개요

TokenLab은 일반적인 코딩 도구, SDK 및 프레임워크가 최소한의 접착 코드(glue code)로 통합될 수 있도록 다양한 API 형식을 제공합니다. 이 페이지는 마케팅용 매트릭스보다 의도적으로 더 구체적인 정보를 담고 있습니다:
  • 지원됨(Supported): 구체적인 설정 경로를 문서화했으며, TokenLab이 해당 경로에서 기대하는 프로토콜 형태를 노출함을 의미합니다.
  • 강력한 네이티브 경로(Strong native path): 해당 리포지토리에 해당 프로토콜 제품군을 위한 직접적인 어댑터나 요청 형식 증거가 있음을 의미합니다.
  • 최선형 지원(Best-effort): 통합이 작동할 수는 있지만, 업스트림 클라이언트가 이 사용자 지정 게이트웨이 워크플로우를 안정적인 계약으로 취급하지 않음을 의미합니다.
지원되지 않는 필드는 일관되게 처리되지 않습니다. 호환성 경로에서 일부 필드는 무시되거나 정규화됩니다. /v1/responses 경로에서는 해당 경로가 요청된 동작을 보장할 수 없을 때 명시적인 400 또는 503 오류를 반환할 수 있습니다.

지원되는 API 형식

엔드포인트형식사용 사례
/v1/chat/completionsOpenAI Chat범용 호환성
/v1/responsesOpenAI Responses상태 유지 대화
/v1/messagesAnthropic MessagesClaude 네이티브 기능
/v1beta/models/:model:generateContentGoogle GeminiGemini 네이티브 기능

IDE 및 CLI 호환성

문서화된 도구 경로

도구지원 수준형식참고 사항
Cursor제한적 지원OpenAI 호환BYOK 표준 채팅/에디터 흐름에는 작동하지만, Tab Completion과 같은 Cursor 관리 기능의 대체재로는 작동하지 않음
Claude Code CLI강력한 네이티브 경로AnthropicThinking 및 tool_choice에 대한 어댑터 커버리지를 갖춘 네이티브 /v1/messages 경로
Codex CLI모델/경로 제한적 지원OpenAI Responses/v1/responses를 Codex 전용 워크플로우를 위한 고급 경로로 취급; 일부 Responses 전용 필드는 모든 모델 및 경로에서 보장되지 않음
Gemini CLI최선형 / 실험적Gemini사용자 지정 TokenLab 베이스 URL 흐름은 공식 Gemini CLI 통합이 아님
OpenCode지원됨OpenAI 호환기본적으로 OpenAI 호환 공급자를 사용하고, 명시적으로 필요한 경우에만 Responses 기반 공급자로 전환
OpenHands지원됨OpenAI 호환openai/<model> 및 TokenLab의 /v1 베이스 URL과 함께 LiteLLM/OpenAI 호환 경로 사용
다른 OpenAI 호환 에디터 및 에이전트 도구도 동일한 베이스 URL 패턴으로 작동하는 경우가 많습니다. 프로덕션 환경에서 사용하기 전에 해당 도구의 자체 사용자 지정 공급자 지원 여부를 확인하십시오.

구성 예시

Base URL: https://api.tokenlab.sh/v1
API Key: sk-your-tokenlab-key
Cursor는 내부적으로 Anthropic 스타일의 도구 형식을 사용합니다. TokenLab은 다음 두 가지를 모두 지원합니다:
  • OpenAI 형식: { type: "function", function: { name, parameters } }
  • Anthropic 형식: { name, input_schema } (type 필드 없음)

SDK 호환성

문서화된 SDK 및 프레임워크 경로

SDK / 프레임워크언어지원 수준참고 사항
OpenAI SDKPython/JS/Go핵심 경로 지원/v1 Chat Completions 및 Embeddings 호환 경로; 공급자별 동작에는 네이티브 공급자 경로를 사용하며, Responses 전용 필드가 모든 모델에서 작동한다고 가정하지 마십시오
Anthropic SDKPython/JS강력한 네이티브 경로도구, Thinking 및 프롬프트 캐싱에 대한 직접적인 증거를 갖춘 네이티브 Messages 경로
Vercel AI SDKTypeScript권장 통합 패턴@ai-sdk/openai-compatible을 우선 사용; 명시적으로 Responses 네이티브 동작을 원할 때만 @ai-sdk/openai 사용
LangChainPython/JS표준 인터페이스 지원ChatOpenAIOpenAIEmbeddings가 의도된 범위임; 공급자 네이티브 추가 기능은 범위 밖임
LlamaIndexPythonOpenAILike를 통해 지원TokenLab과 같은 타사 게이트웨이에는 내장 OpenAI 클래스가 아닌 OpenAILike 사용
OpenAI Agents SDKPython채팅 완료 경로 지원OpenAIChatCompletionsModel과 함께 AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") 사용; 네이티브 Responses 동작은 선택한 모델 및 경로에 따라 다름
AutoGenPython사용자 지정 엔드포인트 경로 지원base_url: https://api.tokenlab.sh/v1과 함께 OpenAIChatCompletionClient 사용
Semantic Kernel.NET사용자 지정 엔드포인트 경로 지원OpenAI 채팅 완료 커넥터 사용자 지정 엔드포인트를 사용하고 https://api.tokenlab.sh/v1을 가리킴
CrewAIPython사용자 지정 엔드포인트 경로 지원OPENAI_API_BASE 또는 LLM(base_url=...)을 TokenLab의 /v1 엔드포인트로 설정
Pydantic AIPythonOpenAI 호환 공급자 경로 지원OpenAIProvider(base_url="https://api.tokenlab.sh/v1")과 함께 OpenAIChatModel 사용
DSPyPython사용자 지정 엔드포인트 경로 지원dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1") 사용
LangflowPython / Web범위 제한적 지원OpenAI 구성 요소의 OpenAI API Base 필드에 TokenLab의 /v1 엔드포인트 사용
HaystackPython사용자 지정 엔드포인트 경로 지원OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1") 사용
GraphitiPython사용자 지정 엔드포인트 경로 지원TokenLab의 /v1 엔드포인트와 함께 OpenAIGenericClient 사용
Dify-범위 제한적 지원OpenAI 공급자 및 채팅 완료 지향 흐름이 의도된 경로임; Codex 전용 Responses 또는 WebSocket 동작에는 적합하지 않음
FlowiseWeb / Node범위 제한적 지원사용 가능한 경우 TokenLab 채팅 노드를 사용하거나 https://api.tokenlab.sh/v1을 가리키는 ChatOpenAI 호환 노드 사용
Mem0Python사용자 지정 엔드포인트 경로 지원OpenAI 공급자를 유지하고 openai_base_url을 TokenLab의 /v1 엔드포인트로 설정
AgnoPython지원되는 경로사용 가능한 경우 TokenLab 모델 래퍼를 사용하거나 OpenAI 호환 베이스 URL 경로 사용
Browser UsePython사용자 지정 엔드포인트 경로 지원TokenLab의 /v1 엔드포인트와 함께 ChatOpenAILike 사용
VoltAgentTypeScript사용자 지정 엔드포인트 경로 지원baseURL: "https://api.tokenlab.sh/v1"로 구성된 AI SDK OpenAI 공급자 전달
RagasPython사용자 지정 엔드포인트 경로 지원llm_factoryAsyncOpenAI(base_url="https://api.tokenlab.sh/v1") 전달
GuardrailsPython유효성 검사 경로 지원TokenLab의 /v1 엔드포인트로 구성된 OpenAI SDK 채팅 완료 호출 가능 객체 전달
Prompt flowPython / CLI사용자 지정 엔드포인트 경로 지원base_url=https://api.tokenlab.sh/v1로 OpenAI 연결 생성
PromptfooCLI / Node지원되는 경로apiBaseUrl: https://api.tokenlab.sh/v1과 함께 OpenAI 채팅 또는 Responses 공급자 사용
Portkey GatewayGateway지원되는 경로OpenAI 호환 채팅 및 Responses 트래픽을 위한 업스트림 공급자로 TokenLab 사용
HeliconeGateway / Observability관측 가능성 경로 지원Helicone-Target-Url: https://api.tokenlab.sh와 함께 Helicone Gateway를 통해 OpenAI 호환 요청 라우팅
LangfuseObservability추적 경로 지원TokenLab의 /v1 베이스 URL로 Langfuse OpenAI 통합 구성
OpenLITObservability추적 경로 지원TokenLab의 /v1 베이스 URL로 구성된 OpenAI SDK 클라이언트 계측
OpenLLMetryObservability추적 경로 지원TokenLab의 /v1 베이스 URL로 OpenAI SDK 계측 사용
PhoenixObservability추적 경로 지원TokenLab의 /v1 베이스 URL로 구성된 OpenAI SDK 클라이언트 자동 계측
OpikObservability추적 경로 지원TokenLab의 /v1 베이스 URL로 구성된 OpenAI SDK 클라이언트 래핑
LangBotBot Platform채팅 경로 지원사용 가능한 경우 TokenLab 요청자를 사용하거나 TokenLab의 /v1 엔드포인트로 OpenAI 호환 요청자 구성
Open WebUIWeb Chat채팅 앱 경로 지원TokenLab을 OpenAI 호환 API 연결로 추가하고 모델 목록 새로 고침
Chatbox / DeepChat / Jan / LibreChat / Cherry StudioDesktop / Web채팅 앱 경로 지원각 앱의 OpenAI 호환 사용자 지정 공급자 흐름 사용; 이 앱들은 일반적으로 채팅 완료 지향적임

채팅 완료(Chat Completions) 매개변수

핵심 매개변수

매개변수유형설명
modelstring모델 식별자 (필수)
messagesarray대화 메시지 (필수)
max_tokensinteger최대 출력 토큰
temperaturenumber샘플링 온도 (0-2)
top_pnumber뉴클리어스 샘플링 (0-1)
streamboolean스트리밍 활성화

도구 호출(Tool Calling)

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get weather for a location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          }
        },
        "strict": true
      }
    }
  ],
  "tool_choice": "auto",
  "parallel_tool_calls": true
}

도구 선택 옵션

형식예시설명
String"auto", "none", "required"단순 선택
OpenAI Object{ "type": "function", "function": { "name": "fn" } }특정 함수 강제
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Anthropic 네이티브 형식

고급 매개변수

매개변수유형설명
stream_optionsobjectChat Completions 전용: 토큰 수 계산을 위한 { include_usage: true }
reasoning_effortstring추론 활성화 GPT-5 모델을 위한 "low", "medium", "high"
service_tierstring"auto" 또는 "default"
seedinteger결정론적 출력
logprobsboolean로그 확률 반환
top_logprobsinteger상위 로그 확률 개수 (0-20)
logit_biasobject토큰 편향 맵 (-100 ~ 100)
frequency_penaltynumber반복 페널티 (-2 ~ 2)
presence_penaltynumber주제 페널티 (-2 ~ 2)
stopstring/array중지 시퀀스
ninteger완료 개수 (1-128)
userstring추적을 위한 사용자 식별자

OpenAI 고급 기능

매개변수유형설명
modalitiesarray멀티모달을 위한 ["text", "audio"]
audioobject오디오 출력 구성 (음성, 형식)
predictionobject더 빠른 완료를 위한 예측 출력
metadataobject추적을 위한 키-값 쌍
storeboolean나중에 검색할 수 있도록 저장

공급자별 옵션

{
  "anthropic_options": {
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "prompt_caching": true
  },
  "google_options": {
    "safety_settings": [...],
    "google_search": true,
    "code_execution": true
  }
}

Anthropic Messages 매개변수

핵심 매개변수

매개변수유형설명
modelstring모델 식별자
messagesarray대화 메시지
max_tokensinteger최대 출력 (최대 128000)
systemstring/array시스템 프롬프트
streamboolean스트리밍 활성화

도구 호출(Tool Calling)

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Get weather",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        }
      }
    }
  ],
  "tool_choice": {
    "type": "auto",
    "disable_parallel_tool_use": false
  }
}

확장된 Thinking

{
  "model": "claude-opus-4-6",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Responses API 매개변수

핵심 매개변수

매개변수유형설명
modelstring모델 식별자
inputstring/array입력 콘텐츠
instructionsstring시스템 지침
max_output_tokensinteger최대 출력 토큰
previous_response_idstring대화 이어가기

고급 매개변수

매개변수유형설명
truncation_strategystring"auto" 또는 "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstring추론 모델용
service_tierstring우선순위 계층

도구 형식

OpenAI 및 Anthropic 도구 형식을 모두 지원합니다:
// OpenAI 형식
{ "type": "function", "name": "fn", "parameters": {...} }

// Anthropic 형식 (Cursor 호환성)
{ "name": "fn", "input_schema": {...} }

Gemini API 매개변수

핵심 매개변수

매개변수유형설명
contentsarray대화 콘텐츠
systemInstructionobject시스템 프롬프트
generationConfigobject생성 설정

도구(Tools)

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "Search the web",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

안전 설정(Safety Settings)

{
  "safetySettings": [
    {
      "category": "HARM_CATEGORY_HARASSMENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
  ]
}

추가 매개변수

매개변수유형설명
cachedContentstring캐시된 콘텐츠 참조
responseMimeTypestring"text/plain" 또는 "application/json"
responseSchemaobject구조화된 출력을 위한 JSON 스키마

스트리밍

채팅 완료 및 Responses를 포함하여 stream: true를 노출하는 생성 엔드포인트는 서버 전송 이벤트(SSE)를 사용합니다:
# Chat Completions
curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# Chat Completions 사용량 추적
-d '{"...", "stream_options": {"include_usage": true}}'

오류 처리

TokenLab은 OpenAI 호환 오류 응답을 반환합니다:
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
자세한 내용은 오류 처리 가이드를 참조하십시오.

모범 사례

알 수 없는 매개변수는 선택한 공개 경로와 모델이 지원하는 경우에만 전달됩니다.
Chat Completions 스트리밍의 경우, 정확한 토큰 수를 위해 stream_options.include_usage를 활성화하십시오. Responses는 자체 스트리밍 계약을 가지고 있으며 이 Chat 전용 옵션을 노출하지 않습니다.
SDK에서 기대하는 형식과 일치시키십시오. TokenLab은 OpenAI 및 Anthropic 형식을 모두 허용합니다.