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
| Endpoint | Format | Kasus Penggunaan |
|---|---|---|
/v1/chat/completions | OpenAI Chat | Kompatibilitas universal |
/v1/responses | OpenAI Responses | Percakapan stateful |
/v1/messages | Anthropic Messages | Fitur asli Claude |
/v1beta/models/:model:generateContent | Google Gemini | Fitur asli Gemini |
Kompatibilitas IDE & CLI
Jalur Alat yang Didokumentasikan
| Alat | Tingkat Dukungan | Format | Catatan |
|---|---|---|---|
| Cursor | Didukung dengan batasan | Kompatibel dengan OpenAI | Berfungsi untuk alur chat/editor standar BYOK, bukan sebagai pengganti fitur yang dikelola Cursor seperti Tab Completion |
| Claude Code CLI | Jalur asli yang kuat | Anthropic | Rute /v1/messages asli dengan cakupan adaptor untuk thinking dan tool_choice |
| Codex CLI | Didukung dengan batasan model/jalur | OpenAI Responses | Perlakukan /v1/responses sebagai jalur lanjutan untuk alur kerja khusus Codex; beberapa bidang khusus Responses tidak dijamin ada di setiap model dan jalur rute |
| Gemini CLI | Upaya terbaik / eksperimental | Gemini | Alur base URL kustom TokenLab bukan merupakan integrasi resmi Gemini CLI |
| OpenCode | Didukung | Kompatibel dengan OpenAI | Gunakan penyedia yang kompatibel dengan OpenAI secara default; beralih ke penyedia berbasis Responses hanya jika Anda benar-benar membutuhkannya |
| OpenHands | Didukung | Kompatibel dengan OpenAI | Gunakan 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
- Cursor
- Claude Code
- OpenCode
- Aider
- Format OpenAI:
{ type: "function", function: { name, parameters } } - Format Anthropic:
{ name, input_schema }(tanpa bidang type)
Kompatibilitas SDK
Jalur SDK & Framework yang Didokumentasikan
| SDK / Framework | Bahasa | Tingkat Dukungan | Catatan |
|---|---|---|---|
| OpenAI SDK | Python/JS/Go | Jalur inti didukung | Jalur 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 SDK | Python/JS | Jalur asli yang kuat | Rute Messages asli dengan bukti langsung untuk tools, thinking, dan prompt caching |
| Vercel AI SDK | TypeScript | Pola integrasi yang disarankan | Lebih disukai @ai-sdk/openai-compatible; gunakan @ai-sdk/openai hanya jika Anda secara eksplisit menginginkan perilaku asli Responses |
| LangChain | Python/JS | Permukaan standar didukung | ChatOpenAI dan OpenAIEmbeddings adalah cakupan yang dituju; tambahan asli vendor di luar cakupan |
| LlamaIndex | Python | Didukung melalui OpenAILike | Gunakan OpenAILike, bukan kelas OpenAI bawaan, untuk gateway pihak ketiga seperti TokenLab |
| OpenAI Agents SDK | Python | Jalur chat-completions didukung | Gunakan AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") dengan OpenAIChatCompletionsModel; perilaku Responses asli bergantung pada model dan rute yang dipilih |
| AutoGen | Python | Jalur endpoint kustom didukung | Gunakan OpenAIChatCompletionClient dengan base_url: https://api.tokenlab.sh/v1 |
| Semantic Kernel | .NET | Jalur endpoint kustom didukung | Gunakan endpoint kustom konektor chat completion OpenAI dan arahkan ke https://api.tokenlab.sh/v1 |
| CrewAI | Python | Jalur endpoint kustom didukung | Atur OPENAI_API_BASE atau LLM(base_url=...) ke endpoint /v1 TokenLab |
| Pydantic AI | Python | Jalur penyedia kompatibel OpenAI didukung | Gunakan OpenAIChatModel dengan OpenAIProvider(base_url="https://api.tokenlab.sh/v1") |
| DSPy | Python | Jalur endpoint kustom didukung | Gunakan dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1") |
| Langflow | Python / Web | Didukung dengan batasan cakupan | Gunakan bidang OpenAI API Base pada komponen OpenAI dengan endpoint /v1 TokenLab |
| Haystack | Python | Jalur endpoint kustom didukung | Gunakan OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1") |
| Graphiti | Python | Jalur endpoint kustom didukung | Gunakan OpenAIGenericClient dengan endpoint /v1 TokenLab |
| Dify | - | Didukung dengan batasan cakupan | Penyedia OpenAI dan alur yang berorientasi pada chat-completions adalah jalur yang dituju; tidak cocok untuk perilaku Responses atau WebSocket khusus Codex |
| Flowise | Web / Node | Didukung dengan batasan cakupan | Gunakan node chat TokenLab jika tersedia, atau node yang kompatibel dengan ChatOpenAI yang diarahkan ke https://api.tokenlab.sh/v1 |
| Mem0 | Python | Jalur endpoint kustom didukung | Tetap gunakan penyedia OpenAI dan atur openai_base_url ke endpoint /v1 TokenLab |
| Agno | Python | Jalur didukung | Gunakan wrapper model TokenLab jika tersedia, atau jalur base URL yang kompatibel dengan OpenAI |
| Browser Use | Python | Jalur endpoint kustom didukung | Gunakan ChatOpenAILike dengan endpoint /v1 TokenLab |
| VoltAgent | TypeScript | Jalur endpoint kustom didukung | Teruskan penyedia OpenAI AI SDK yang dikonfigurasi dengan baseURL: "https://api.tokenlab.sh/v1" |
| Ragas | Python | Jalur endpoint kustom didukung | Teruskan AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") ke dalam llm_factory |
| Guardrails | Python | Jalur validasi didukung | Teruskan callable chat completions SDK OpenAI yang dikonfigurasi dengan endpoint /v1 TokenLab |
| Prompt flow | Python / CLI | Jalur endpoint kustom didukung | Buat koneksi OpenAI dengan base_url=https://api.tokenlab.sh/v1 |
| Promptfoo | CLI / Node | Jalur didukung | Gunakan penyedia chat atau Responses OpenAI dengan apiBaseUrl: https://api.tokenlab.sh/v1 |
| Portkey Gateway | Gateway | Jalur didukung | Gunakan TokenLab sebagai penyedia upstream untuk lalu lintas chat dan Responses yang kompatibel dengan OpenAI |
| Helicone | Gateway / Observability | Jalur observabilitas didukung | Rutekan permintaan yang kompatibel dengan OpenAI melalui Helicone Gateway dengan Helicone-Target-Url: https://api.tokenlab.sh |
| Langfuse | Observability | Jalur pelacakan didukung | Konfigurasikan integrasi OpenAI Langfuse dengan base URL /v1 TokenLab |
| OpenLIT | Observability | Jalur pelacakan didukung | Instrumentasikan klien SDK OpenAI yang dikonfigurasi dengan base URL /v1 TokenLab |
| OpenLLMetry | Observability | Jalur pelacakan didukung | Gunakan instrumentasi SDK OpenAI dengan base URL /v1 TokenLab |
| Phoenix | Observability | Jalur pelacakan didukung | Instrumentasikan otomatis klien SDK OpenAI yang dikonfigurasi dengan base URL /v1 TokenLab |
| Opik | Observability | Jalur pelacakan didukung | Bungkus klien SDK OpenAI yang dikonfigurasi dengan base URL /v1 TokenLab |
| LangBot | Bot Platform | Jalur chat didukung | Gunakan requester TokenLab jika tersedia, atau konfigurasikan requester yang kompatibel dengan OpenAI dengan endpoint /v1 TokenLab |
| Open WebUI | Web Chat | Jalur aplikasi chat didukung | Tambahkan TokenLab sebagai koneksi API yang kompatibel dengan OpenAI dan segarkan daftar model |
| Chatbox / DeepChat / Jan / LibreChat / Cherry Studio | Desktop / Web | Jalur aplikasi chat didukung | Gunakan alur penyedia kustom yang kompatibel dengan OpenAI dari masing-masing aplikasi; aplikasi ini biasanya berorientasi pada chat-completions |
Parameter Chat Completions
Parameter Inti
| Parameter | Tipe | Deskripsi |
|---|---|---|
model | string | Pengenal model (wajib) |
messages | array | Pesan percakapan (wajib) |
max_tokens | integer | Token output maksimum |
temperature | number | Suhu pengambilan sampel (0-2) |
top_p | number | Pengambilan sampel nukleus (0-1) |
stream | boolean | Aktifkan streaming |
Pemanggilan Alat (Tool Calling)
Opsi Pilihan Alat (Tool Choice)
| Format | Contoh | Deskripsi |
|---|---|---|
| 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
| Parameter | Tipe | Deskripsi |
|---|---|---|
stream_options | object | Hanya Chat Completions: { include_usage: true } untuk jumlah token |
reasoning_effort | string | "low", "medium", "high" untuk model GPT-5 yang mendukung penalaran |
service_tier | string | "auto" atau "default" |
seed | integer | Output deterministik |
logprobs | boolean | Kembalikan probabilitas log |
top_logprobs | integer | Jumlah probabilitas log teratas (0-20) |
logit_bias | object | Peta bias token (-100 hingga 100) |
frequency_penalty | number | Penalti pengulangan (-2 hingga 2) |
presence_penalty | number | Penalti topik (-2 hingga 2) |
stop | string/array | Urutan berhenti |
n | integer | Jumlah penyelesaian (1-128) |
user | string | Pengenal pengguna untuk pelacakan |
Fitur Lanjutan OpenAI
| Parameter | Tipe | Deskripsi |
|---|---|---|
modalities | array | ["text", "audio"] untuk multimodal |
audio | object | Konfigurasi output audio (suara, format) |
prediction | object | Output yang diprediksi untuk penyelesaian lebih cepat |
metadata | object | Pasangan kunci-nilai untuk pelacakan |
store | boolean | Simpan untuk pengambilan nanti |
Opsi Khusus Penyedia
Parameter Anthropic Messages
Parameter Inti
| Parameter | Tipe | Deskripsi |
|---|---|---|
model | string | Pengenal model |
messages | array | Pesan percakapan |
max_tokens | integer | Output maksimum (hingga 128000) |
system | string/array | Prompt sistem |
stream | boolean | Aktifkan streaming |
Pemanggilan Alat (Tool Calling)
Penalaran Lanjutan (Extended Thinking)
Parameter Responses API
Parameter Inti
| Parameter | Tipe | Deskripsi |
|---|---|---|
model | string | Pengenal model |
input | string/array | Konten input |
instructions | string | Instruksi sistem |
max_output_tokens | integer | Token output maksimum |
previous_response_id | string | Lanjutkan percakapan |
Parameter Lanjutan
| Parameter | Tipe | Deskripsi |
|---|---|---|
truncation_strategy | string | "auto" atau "disabled" |
include | array | ["reasoning.encrypted_content"] |
reasoning_effort | string | Untuk model penalaran |
service_tier | string | Tingkat prioritas |
Format Alat
Mendukung format alat OpenAI dan Anthropic:Parameter Gemini API
Parameter Inti
| Parameter | Tipe | Deskripsi |
|---|---|---|
contents | array | Konten percakapan |
systemInstruction | object | Prompt sistem |
generationConfig | object | Pengaturan generasi |
Alat (Tools)
Pengaturan Keamanan (Safety Settings)
Parameter Tambahan
| Parameter | Tipe | Deskripsi |
|---|---|---|
cachedContent | string | Referensi konten yang di-cache |
responseMimeType | string | "text/plain" atau "application/json" |
responseSchema | object | Skema JSON untuk output terstruktur |
Streaming
Endpoint generasi yang menyediakanstream: true, termasuk Chat Completions dan Responses, menggunakan Server-Sent Events (SSE):
Penanganan Kesalahan
TokenLab mengembalikan respons kesalahan yang kompatibel dengan OpenAI:Praktik Terbaik
Gunakan passthrough untuk parameter yang tidak diketahui
Gunakan passthrough untuk parameter yang tidak diketahui
Parameter yang tidak diketahui hanya diteruskan jika rute publik dan model yang dipilih mendukungnya.
Gunakan stream_options.include_usage hanya untuk Chat Completions
Gunakan stream_options.include_usage hanya untuk Chat Completions
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.Gunakan format tool_choice yang sesuai
Gunakan format tool_choice yang sesuai
Sesuaikan dengan format yang diharapkan SDK Anda. TokenLab menerima format OpenAI maupun Anthropic.