Chat Completions
/v1/chat/completions — endpoint chat yang kompatibel dengan OpenAI. Parameter model, messages, stream, temperature. Streaming SSE. Contoh request dan response dalam curl, Python (openai) dan Node.
Endpoint chat yang kompatibel dengan OpenAI. Berfungsi dengan SDK OpenAI mana pun — cukup ubah base_url menjadi https://getvibeapi.com/v1.
Parameter body permintaan
GetVibe menerapkan kontrak Chat Completions yang kompatibel, bukan pass-through byte-per-byte: ia memeriksa akses, me-resolve id model publik, menerapkan batas, dan dapat menormalisasi field permintaan yang didukung. Respons dan error juga dinormalisasi serta tidak menjamin field atau header khusus upstream. Untuk sebagian besar tugas, tiga hal pertama — model, messages dan stream — sudah cukup.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modelreq. | string | Nama model dari katalog, misalnya gpt-6.1-sol atau claude-opus-5.5. |
messagesreq. | array | Array pesan { role, content }. Role: system, user, assistant. |
stream | boolean | true — streaming respons melalui SSE. |
max_tokens | integer | Jumlah token maksimum dalam respons. Kami menyarankan minimal 64: dengan nilai yang terlalu kecil (misalnya ≤ 16) model bisa mencapai batas (finish_reason: length) sebelum token pertama yang terlihat dan mengembalikan respons kosong. Jika Anda butuh hasil yang singkat — mintalah di prompt, dan sisakan max_tokens dengan ruang cadangan. |
temperature | number | Tingkat keacakan output, 0–2. Default 1. |
| Parameter | Tipe | Deskripsi |
|---|---|---|
top_p | numbermodel-dependent | Nucleus sampling (0–1). Alternatif untuk temperature; mengubah keduanya sekaligus tidak disarankan. |
top_k | numberClaude | Pengambilan sampel Top-K. Hanya model Anthropic. |
seed | integerGPT | Menyematkan hasil untuk reproduktibilitas. Seri GPT; diabaikan di tempat lain. |
stop | string | arraymodel-dependent | Stop sequence: satu string atau daftar berisi maksimal 4 string. |
frequency_penalty | numberGPT · Claude | Penalti untuk pengulangan token berdasarkan frekuensi (-2 hingga 2). |
presence_penalty | numberGPT · Claude | Penalti untuk token yang sudah pernah muncul (-2 hingga 2). |
logprobs | boolean— | Tidak ada rute saat ini yang mengembalikan probabilitas log: parameter dihapus sebelum permintaan diteruskan dan dilaporkan di header x-getvibe-warnings (param_dropped:logprobs); permintaan tidak ditolak. |
top_logprobs | integer— | Dihapus bersama logprobs dan dilaporkan di x-getvibe-warnings. |
logit_bias | objectGPT | Token-ID → logit bias (-100 hingga 100). |
user | stringmodel-dependent | Pengenal pengguna akhir (diteruskan ke hulu untuk pelacakan batas laju). |
response_format | objectGPT · Claude | Paksa output menjadi JSON. Pelajari lebih lanjut → |
tools / tool_choice | array / stringGPT · Claude | Function calling. Pelajari lebih lanjut → |
Lencana di kolom “Support”: GPT — hanya seri GPT, Claude — hanya model Anthropic, GPT · Claude — kedua keluarga, bergantung model — periksa dokumentasi model tersebut.
Dukungan parameter per varian route
Model yang sama dapat dilayani oleh rute yang berbeda (varian :1, :2, …). Rute berbeda dalam hal harga, kecepatan, dan himpunan parameter yang didukung.
| Parameter | Tipe | Deskripsi |
|---|---|---|
Default variant (:1) | basic | Kumpulan parameter OpenAI lengkap: temperature, top_p, seed, stop, penalti, logprobs, tools, response_format, streaming dengan chunk usage. |
Subscription variants (:2, :3…) | advanced | Kumpulan parameternya sama dengan yang dasar, tetapi rutenya menggunakan infrastruktur berbeda. Parameter individual mungkin tidak didukung — kami mencatatnya di deskripsi varian. |
or-* variants | or-* | Mem-proxy permintaan melalui aggregator terpisah. Dukungan parameter bergantung pada provider tertentu. tool_choice: "required" dan beberapa parameter sampling mungkin tidak berfungsi. |
:1 (default) atau periksa dukungannya pada deskripsi varian di halaman Models.Contoh permintaan
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"messages": [
{"role": "user", "content": "Hello! Who are you?"}
]
}'Contoh respons
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hi! I'm an assistant available through GetVibe API."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 14,
"total_tokens": 26
}
}Streaming (SSE)
Dengan "stream": true respons datang sebagai aliran Server-Sent Events: event data: … dengan delta, diakhiri dengan data: [DONE].
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"stream": true,
"messages": [{"role": "user", "content": "Count to three"}]
}'Chunk akhir dengan usage
Chunk terakhir sebelum data: [DONE] memiliki choices: [] kosong dan field usage dengan statistik token. Gunakan untuk penagihan — jangan menjumlahkan delta secara manual.
data: {"id":"chatcmpl-...","choices":[],"usage":{"prompt_tokens":42,"completion_tokens":87,"total_tokens":129},"model":"gpt-6.1-sol","object":"chat.completion.chunk"}
data: [DONE]Setiap respons non-stream yang biayanya dapat diperkirakan menyertakan header respons x-pv-cost-rub. Body streaming tidak memuat pv_cost_rub secara bawaan; kirim x-pv-cost: 1 untuk menambahkan biaya ke peristiwa penggunaan akhir protokol tersebut. Ini adalah perkiraan terbaik; untuk debit sebenarnya, lihat riwayat permintaan GET /v1/generations.
Kompatibilitas
Endpoint ini kompatibel dengan OpenAI SDK (Python, Node, dan lainnya), Codex CLI, dan Claude Code. Claude Code bekerja melalui /v1/messages dengan header x-api-key — lihat Messages and Responses.