Teks
Create Chat Completion
Membuat penyelesaian (completion) untuk pesan chat
Isi Permintaan
Parameter opsional yang didukung, nilai yang diterima, dan nilai default bergantung pada model yang dipilih. Periksa detail model sebelum mengatur opsi sampling, reasoning, atau tool.
ID model yang akan digunakan. Lihat Models untuk opsi yang tersedia.
Daftar pesan yang membentuk percakapan.
Setiap objek pesan berisi:
role(string):system,developer,user,assistant,tool,functioncontent(string | array | null): Isi pesan
Untuk pesan assistant yang berisi tool_calls, content dapat dihilangkan atau diatur ke null.
Ketika content berupa array, TokenLab mendukung blok multimodal terstruktur untuk model yang kompatibel:
- text:
{ "type": "text", "text": "..." } - image:
{ "type": "image_url", "image_url": { "url": "https://..." } } - video:
{ "type": "video_url", "video_url": { "url": "https://..." } } - audio:
{ "type": "audio_url", "audio_url": { "url": "https://..." } }
Untuk input multimodal, gunakan URL https yang dapat diakses publik. Jenis media yang didukung bergantung pada model yang dipilih.
Temperatur sampling. Dukungan, nilai yang diizinkan, dan nilai default bergantung pada model yang dipilih; hilangkan kolom ini untuk menggunakan nilai defaultnya.
Jumlah maksimum token yang akan dihasilkan.
Untuk deepseek-v4.1-flash (dan alias deepseek-flash), model secara default berpikir (thinking) terlebih dahulu. Token thinking dihitung dalam max_tokens. Jika max_tokens terlalu kecil, seluruh anggaran bisa habis untuk thinking sehingga isi pesan kosong, sementara permintaan tetap ditagih. Untuk jawaban panjang, gunakan max_tokens sekitar 32000, atau matikan thinking. Untuk mematikan thinking, tambahkan "thinking": {"type": "disabled"} (atau "reasoning_effort": "none") ke body permintaan; ini berlaku untuk permintaan streaming maupun non-streaming. "enable_thinking": false dan "reasoning": {"enabled": false} tidak mematikannya.
falseJika true, delta pesan parsial akan dikirim sebagai event SSE.
Untuk output panjang (ribuan token atau lebih), atur stream=true agar klien non-streaming tidak mengalami timeout saat menunggu respons lengkap. Pengukuran tim: GPT-6.1 Sol yang menghasilkan sekitar 12 ribu karakter membutuhkan sekitar 147 detik tanpa streaming.
Opsi untuk streaming. Atur include_usage: true untuk menerima penggunaan token dalam potongan stream.
Parameter sampling nucleus. Kami menyarankan untuk mengubah parameter ini atau temperature, jangan keduanya.
Angka antara -2.0 dan 2.0. Nilai positif memberikan penalti pada token yang berulang.
Angka antara -2.0 dan 2.0. Nilai positif memberikan penalti pada token yang sudah ada dalam teks.
Urutan berhenti (stop sequence) atau daftar urutan. Dukungan dan batas urutan bergantung pada model yang dipilih.
Daftar alat (tools) yang mungkin dipanggil oleh model (function calling).
Mengontrol bagaimana model menggunakan alat. Opsi: auto, none, required, atau objek alat tertentu.
Mengizinkan beberapa panggilan alat dalam satu giliran asisten, jika didukung oleh model yang dipilih.
Token maksimum untuk penyelesaian. Alternatif untuk max_tokens, berguna untuk keluarga model baru yang mendukung reasoning.
Upaya reasoning untuk model yang mendukungnya. Nilai yang diterima bergantung pada model yang dipilih.
Untuk model Claude, nilai ini mengatur cara berpikir model: tingkat upaya pada model dengan adaptive thinking, atau anggaran berpikir (thinking budget) pada model yang menggunakannya. none mematikan fitur berpikir pada model yang mengizinkannya. Saat fitur berpikir aktif, Claude menolak temperature selain 1, top_k, top_p di luar 0.95–1, dan pesan asisten yang telah diisi sebelumnya (prefilled). tool_choice paksa berfungsi dengan adaptive thinking tetapi tidak dengan anggaran berpikir.
Opsi untuk model Claude.
prompt_caching(boolean): Aturtrueuntuk melakukan caching pada awal prompt. TokenLab menandai akhir dari prompt sistem dan pesan pengguna terbaru sebagai titik cache. Permintaan berikutnya yang dimulai dengan konten yang sama akan membacanya dari cache. Jika pesan apa pun sudah memilikicache_control, TokenLab tidak menambahkan titik cache.prompt_caching_ttl(string):5m(default) atau1h. Jika rute penyajian tidak mendukung satu jam, TokenLab menggunakan lima menit dan tidak menolak permintaan tersebut.
extra.prompt_caching dan extra.prompt_caching_ttl diterima sebagai opsi yang sama. Lihat Prompt caching untuk harga dan cara memeriksa token yang di-cache.
Seed sampling untuk model yang mendukungnya. Output yang identik tidak dijamin.
Jumlah penyelesaian yang akan dihasilkan (1-128).
Apakah akan mengembalikan log probabilitas.
Jumlah log probabilitas teratas yang akan dikembalikan (0-20). Memerlukan logprobs: true.
Sampling Top-K untuk model yang mendukungnya.
Format respons. Gunakan {"type": "json_object"} untuk mode JSON atau {"type": "json_schema", "json_schema": {...}} untuk skema JSON. Dukungan bergantung pada model yang dipilih.
Memodifikasi kemungkinan munculnya token tertentu. Petakan ID token (sebagai string) ke nilai bias dari -100 hingga 100.
Pengidentifikasi unik yang mewakili pengguna akhir Anda untuk pemantauan penyalahgunaan.
Response
Pengidentifikasi unik untuk penyelesaian.
Selalu chat.completion.
Unix timestamp kapan penyelesaian dibuat.
Model yang digunakan untuk penyelesaian.
Daftar pilihan penyelesaian.
Setiap pilihan berisi:
index(integer): Indeks pilihanmessage(object): Pesan yang dihasilkanfinish_reason(string): Alasan model berhenti, contohnyastop,length, atautool_calls
Ketika model berpikir, message juga dapat berisi:
reasoning_content(string): Teks pemikiran. Beberapa model hanya mengembalikan ringkasan, atau tidak ada teks sama sekali.reasoning_details(array): Blok pemikiran beserta tanda tangannya. Untuk melanjutkan percakapan dengan pemikiran, misalnya setelah panggilan alat, kirimkan kembali tanpa perubahan dalam pesan asisten.
Dalam stream, bidang yang sama akan tiba sebagai delta.reasoning_content dan delta.reasoning_details.
Statistik penggunaan token.
prompt_tokens(integer): Token dalam promptcompletion_tokens(integer): Token dalam penyelesaian, termasuk token pemikirantotal_tokens(integer): Total token yang digunakancompletion_tokens_details.reasoning_tokens(integer): Token pemikiran, saat model melaporkannya
Permintaan
curl -X POST "https://api.tokenlab.sh/v1/chat/completions" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"max_tokens": 1000
}'Contoh Multimodal
{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this video briefly." },
{ "type": "video_url", "video_url": { "url": "https://example.com/demo.mp4" } }
]
}
],
"max_tokens": 64
}Respons
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1706000000,
"model": "gpt-5.6-terra",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 9,
"total_tokens": 29
}
}Otorisasi
BearerAuth Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.
Lokasi: header
Header
Kebijakan Pengiriman per-permintaan. Menggantikan default API key dan Workspace. Secara otomatis mencoba TokenLab Verified terlebih dahulu dan dapat beralih satu kali ke Official saja sebelum output, penerimaan permintaan, atau pembuatan sumber daya persisten.
Nilai yang tersedia
- "auto"
- "verified"
- "official"
Body permintaan
application/json
Respons
application/json
application/json
application/json
application/json
application/json
application/json
application/json