Panduan inti
Format API
Memilih Chat Completions, Responses, Messages, atau Gemini
Satu kunci TokenLab dapat digunakan untuk empat format API. Pertahankan format aplikasi Anda dan periksa tokenlab.accepted_request_formats di halaman model atau GET /v1/models/{model}. Tidak semua model mendukung keempat format.
Chat Completions
POST /v1/chat/completions · openai_chat_completions
Gunakan untuk klien chat kompatibel OpenAI, riwayat pesan, streaming, dan pemanggilan fungsi yang didukung model. Field khusus format lain tidak dijamin dapat digunakan.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh/v1",
)
response = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)Responses
POST /v1/responses · openai_responses
Gunakan jika accepted_request_formats memuat openai_responses. Format ini mendukung pembuatan, pengambilan, pemadatan, penghapusan, streaming, pembuatan dan kelanjutan melalui WebSocket, serta respons latar belakang pada model yang mendukungnya. Menghapus respons tersimpan tidak membatalkan respons aktif.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh/v1",
)
response = client.responses.create(
model="gpt-5.6-terra",
input="Explain why the sky is blue in two sentences.",
)
print(response.output_text)Anthropic Messages
POST /v1/messages · anthropic_messages
Pada SDK Anthropic, gunakan host TokenLab tanpa menambahkan /v1. Pertahankan pemanggilan tool Claude, blok thinking, dan field cache prompt dalam format Messages.
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh",
)
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)Gemini
POST /v1beta/models/:model:generateContent · gemini_generate_content
Gunakan untuk aplikasi dengan contents, parts, file, cache, atau tool Gemini. Nama ProtoJSON lowerCamelCase dan nama asli snake_case diterima; jangan kirim kedua ejaan field yang sama dalam satu permintaan.
curl "https://api.tokenlab.sh/v1beta/models/gemini-3.5-flash:generateContent" \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Hello!"}]}]
}'Pertahankan format percakapan
Setiap format merepresentasikan status percakapan dan hasil tool secara berbeda. Gunakan satu format per percakapan; konversi dan validasi riwayat dalam aplikasi sebelum migrasi.
Field yang tidak dikenal
Penerusan field tidak menjamin dukungan model. Gunakan fitur yang didokumentasikan untuk model pilihan dan tangani error field yang tidak didukung.