Langsung ke konten utama

Gambaran Umum

TokenLab menyediakan berbagai format API agar alat pengodean, SDK, dan framework yang umum digunakan dapat terintegrasi dengan kode tambahan (glue code) yang minimal. Halaman ini sengaja dibuat lebih ringkas daripada matriks pemasaran:
  • Didukung (Supported) berarti kami mendokumentasikan jalur pengaturan yang konkret dan TokenLab menyediakan bentuk protokol yang diharapkan oleh jalur tersebut.
  • Jalur asli yang kuat (Strong native path) berarti repositori juga memiliki bukti adaptor langsung atau format permintaan untuk keluarga protokol tersebut.
  • Upaya terbaik (Best-effort) berarti integrasi dapat berfungsi, namun klien upstream tidak memperlakukan alur kerja gateway kustom ini sebagai kontrak yang stabil.
Bidang yang tidak didukung tidak ditangani secara seragam. Pada rute kompatibilitas, beberapa bidang diabaikan atau dinormalisasi. Pada /v1/responses, bidang yang tidak didukung dapat mengembalikan kesalahan 400 atau 503 secara eksplisit jika rute tersebut tidak dapat menjamin perilaku yang diminta.

Format API yang Didukung

EndpointFormatKasus Penggunaan
/v1/chat/completionsOpenAI ChatKompatibilitas universal
/v1/responsesOpenAI ResponsesPercakapan stateful
/v1/messagesAnthropic MessagesFitur asli Claude
/v1beta/models/:model:generateContentGoogle GeminiFitur asli Gemini

Kompatibilitas IDE & CLI

Jalur Alat yang Didokumentasikan

AlatTingkat DukunganFormatCatatan
CursorDidukung dengan batasanKompatibel dengan OpenAIBerfungsi untuk alur chat/editor standar BYOK, bukan sebagai pengganti fitur yang dikelola Cursor seperti Tab Completion
Claude Code CLIJalur asli yang kuatAnthropicRute /v1/messages asli dengan cakupan adaptor untuk thinking dan tool_choice
Codex CLIDidukung dengan batasan model/jalurOpenAI ResponsesPerlakukan /v1/responses sebagai jalur lanjutan untuk alur kerja khusus Codex; beberapa bidang khusus Responses tidak dijamin ada di setiap model dan jalur rute
Gemini CLIUpaya terbaik / eksperimentalGeminiAlur base URL kustom TokenLab bukan merupakan integrasi resmi Gemini CLI
OpenCodeDidukungKompatibel dengan OpenAIGunakan penyedia yang kompatibel dengan OpenAI secara default; beralih ke penyedia berbasis Responses hanya jika Anda benar-benar membutuhkannya
OpenHandsDidukungKompatibel dengan OpenAIGunakan jalur LiteLLM/kompatibel dengan OpenAI dengan openai/<model> dan base URL /v1 TokenLab
Editor dan alat agen lain yang kompatibel dengan OpenAI sering kali berfungsi dengan pola base URL yang sama; periksa dukungan penyedia kustom alat tersebut sebelum menggunakannya dalam produksi.

Contoh Konfigurasi

Base URL: https://api.tokenlab.sh/v1
API Key: sk-your-tokenlab-key
Cursor menggunakan format alat gaya Anthropic secara internal. TokenLab mendukung keduanya:
  • Format OpenAI: { type: "function", function: { name, parameters } }
  • Format Anthropic: { name, input_schema } (tanpa bidang type)

Kompatibilitas SDK

Jalur SDK & Framework yang Didokumentasikan

SDK / FrameworkBahasaTingkat DukunganCatatan
OpenAI SDKPython/JS/GoJalur inti didukungJalur kompatibilitas untuk Chat Completions dan Embeddings /v1; gunakan rute penyedia asli untuk perilaku khusus penyedia, dan jangan berasumsi bidang khusus Responses berfungsi di setiap model
Anthropic SDKPython/JSJalur asli yang kuatRute Messages asli dengan bukti langsung untuk tools, thinking, dan prompt caching
Vercel AI SDKTypeScriptPola integrasi yang disarankanLebih disukai @ai-sdk/openai-compatible; gunakan @ai-sdk/openai hanya jika Anda secara eksplisit menginginkan perilaku asli Responses
LangChainPython/JSPermukaan standar didukungChatOpenAI dan OpenAIEmbeddings adalah cakupan yang dituju; tambahan asli vendor di luar cakupan
LlamaIndexPythonDidukung melalui OpenAILikeGunakan OpenAILike, bukan kelas OpenAI bawaan, untuk gateway pihak ketiga seperti TokenLab
OpenAI Agents SDKPythonJalur chat-completions didukungGunakan AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") dengan OpenAIChatCompletionsModel; perilaku Responses asli bergantung pada model dan rute yang dipilih
AutoGenPythonJalur endpoint kustom didukungGunakan OpenAIChatCompletionClient dengan base_url: https://api.tokenlab.sh/v1
Semantic Kernel.NETJalur endpoint kustom didukungGunakan endpoint kustom konektor chat completion OpenAI dan arahkan ke https://api.tokenlab.sh/v1
CrewAIPythonJalur endpoint kustom didukungAtur OPENAI_API_BASE atau LLM(base_url=...) ke endpoint /v1 TokenLab
Pydantic AIPythonJalur penyedia kompatibel OpenAI didukungGunakan OpenAIChatModel dengan OpenAIProvider(base_url="https://api.tokenlab.sh/v1")
DSPyPythonJalur endpoint kustom didukungGunakan dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1")
LangflowPython / WebDidukung dengan batasan cakupanGunakan bidang OpenAI API Base pada komponen OpenAI dengan endpoint /v1 TokenLab
HaystackPythonJalur endpoint kustom didukungGunakan OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1")
GraphitiPythonJalur endpoint kustom didukungGunakan OpenAIGenericClient dengan endpoint /v1 TokenLab
Dify-Didukung dengan batasan cakupanPenyedia OpenAI dan alur yang berorientasi pada chat-completions adalah jalur yang dituju; tidak cocok untuk perilaku Responses atau WebSocket khusus Codex
FlowiseWeb / NodeDidukung dengan batasan cakupanGunakan node chat TokenLab jika tersedia, atau node yang kompatibel dengan ChatOpenAI yang diarahkan ke https://api.tokenlab.sh/v1
Mem0PythonJalur endpoint kustom didukungTetap gunakan penyedia OpenAI dan atur openai_base_url ke endpoint /v1 TokenLab
AgnoPythonJalur didukungGunakan wrapper model TokenLab jika tersedia, atau jalur base URL yang kompatibel dengan OpenAI
Browser UsePythonJalur endpoint kustom didukungGunakan ChatOpenAILike dengan endpoint /v1 TokenLab
VoltAgentTypeScriptJalur endpoint kustom didukungTeruskan penyedia OpenAI AI SDK yang dikonfigurasi dengan baseURL: "https://api.tokenlab.sh/v1"
RagasPythonJalur endpoint kustom didukungTeruskan AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") ke dalam llm_factory
GuardrailsPythonJalur validasi didukungTeruskan callable chat completions SDK OpenAI yang dikonfigurasi dengan endpoint /v1 TokenLab
Prompt flowPython / CLIJalur endpoint kustom didukungBuat koneksi OpenAI dengan base_url=https://api.tokenlab.sh/v1
PromptfooCLI / NodeJalur didukungGunakan penyedia chat atau Responses OpenAI dengan apiBaseUrl: https://api.tokenlab.sh/v1
Portkey GatewayGatewayJalur didukungGunakan TokenLab sebagai penyedia upstream untuk lalu lintas chat dan Responses yang kompatibel dengan OpenAI
HeliconeGateway / ObservabilityJalur observabilitas didukungRutekan permintaan yang kompatibel dengan OpenAI melalui Helicone Gateway dengan Helicone-Target-Url: https://api.tokenlab.sh
LangfuseObservabilityJalur pelacakan didukungKonfigurasikan integrasi OpenAI Langfuse dengan base URL /v1 TokenLab
OpenLITObservabilityJalur pelacakan didukungInstrumentasikan klien SDK OpenAI yang dikonfigurasi dengan base URL /v1 TokenLab
OpenLLMetryObservabilityJalur pelacakan didukungGunakan instrumentasi SDK OpenAI dengan base URL /v1 TokenLab
PhoenixObservabilityJalur pelacakan didukungInstrumentasikan otomatis klien SDK OpenAI yang dikonfigurasi dengan base URL /v1 TokenLab
OpikObservabilityJalur pelacakan didukungBungkus klien SDK OpenAI yang dikonfigurasi dengan base URL /v1 TokenLab
LangBotBot PlatformJalur chat didukungGunakan requester TokenLab jika tersedia, atau konfigurasikan requester yang kompatibel dengan OpenAI dengan endpoint /v1 TokenLab
Open WebUIWeb ChatJalur aplikasi chat didukungTambahkan TokenLab sebagai koneksi API yang kompatibel dengan OpenAI dan segarkan daftar model
Chatbox / DeepChat / Jan / LibreChat / Cherry StudioDesktop / WebJalur aplikasi chat didukungGunakan alur penyedia kustom yang kompatibel dengan OpenAI dari masing-masing aplikasi; aplikasi ini biasanya berorientasi pada chat-completions

Parameter Chat Completions

Parameter Inti

ParameterTipeDeskripsi
modelstringPengenal model (wajib)
messagesarrayPesan percakapan (wajib)
max_tokensintegerToken output maksimum
temperaturenumberSuhu pengambilan sampel (0-2)
top_pnumberPengambilan sampel nukleus (0-1)
streambooleanAktifkan streaming

Pemanggilan Alat (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
}

Opsi Pilihan Alat (Tool Choice)

FormatContohDeskripsi
String"auto", "none", "required"Pemilihan sederhana
Objek OpenAI{ "type": "function", "function": { "name": "fn" } }Paksa fungsi tertentu
Objek Anthropic{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Format asli Anthropic

Parameter Lanjutan

ParameterTipeDeskripsi
stream_optionsobjectHanya Chat Completions: { include_usage: true } untuk jumlah token
reasoning_effortstring"low", "medium", "high" untuk model GPT-5 yang mendukung penalaran
service_tierstring"auto" atau "default"
seedintegerOutput deterministik
logprobsbooleanKembalikan probabilitas log
top_logprobsintegerJumlah probabilitas log teratas (0-20)
logit_biasobjectPeta bias token (-100 hingga 100)
frequency_penaltynumberPenalti pengulangan (-2 hingga 2)
presence_penaltynumberPenalti topik (-2 hingga 2)
stopstring/arrayUrutan berhenti
nintegerJumlah penyelesaian (1-128)
userstringPengenal pengguna untuk pelacakan

Fitur Lanjutan OpenAI

ParameterTipeDeskripsi
modalitiesarray["text", "audio"] untuk multimodal
audioobjectKonfigurasi output audio (suara, format)
predictionobjectOutput yang diprediksi untuk penyelesaian lebih cepat
metadataobjectPasangan kunci-nilai untuk pelacakan
storebooleanSimpan untuk pengambilan nanti

Opsi Khusus Penyedia

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

Parameter Anthropic Messages

Parameter Inti

ParameterTipeDeskripsi
modelstringPengenal model
messagesarrayPesan percakapan
max_tokensintegerOutput maksimum (hingga 128000)
systemstring/arrayPrompt sistem
streambooleanAktifkan streaming

Pemanggilan Alat (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
  }
}

Penalaran Lanjutan (Extended Thinking)

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

Parameter Responses API

Parameter Inti

ParameterTipeDeskripsi
modelstringPengenal model
inputstring/arrayKonten input
instructionsstringInstruksi sistem
max_output_tokensintegerToken output maksimum
previous_response_idstringLanjutkan percakapan

Parameter Lanjutan

ParameterTipeDeskripsi
truncation_strategystring"auto" atau "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringUntuk model penalaran
service_tierstringTingkat prioritas

Format Alat

Mendukung format alat OpenAI dan Anthropic:
// Format OpenAI
{ "type": "function", "name": "fn", "parameters": {...} }

// Format Anthropic (Kompatibilitas Cursor)
{ "name": "fn", "input_schema": {...} }

Parameter Gemini API

Parameter Inti

ParameterTipeDeskripsi
contentsarrayKonten percakapan
systemInstructionobjectPrompt sistem
generationConfigobjectPengaturan generasi

Alat (Tools)

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

Pengaturan Keamanan (Safety Settings)

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

Parameter Tambahan

ParameterTipeDeskripsi
cachedContentstringReferensi konten yang di-cache
responseMimeTypestring"text/plain" atau "application/json"
responseSchemaobjectSkema JSON untuk output terstruktur

Streaming

Endpoint generasi yang menyediakan stream: true, termasuk Chat Completions dan Responses, menggunakan Server-Sent Events (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 usage tracking
-d '{"...", "stream_options": {"include_usage": true}}'

Penanganan Kesalahan

TokenLab mengembalikan respons kesalahan yang kompatibel dengan OpenAI:
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
Lihat Panduan Penanganan Kesalahan untuk detailnya.

Praktik Terbaik

Parameter yang tidak diketahui hanya diteruskan jika rute publik dan model yang dipilih mendukungnya.
Untuk streaming Chat Completions, aktifkan stream_options.include_usage untuk jumlah token yang akurat. Responses memiliki kontrak streaming sendiri dan tidak menyediakan opsi khusus Chat ini.
Sesuaikan dengan format yang diharapkan SDK Anda. TokenLab menerima format OpenAI maupun Anthropic.