"OpenAI-compatible" berarti API menggunakan format wire yang sama dengan /v1/chat/completions milik OpenAI — sehingga SDK atau alat OpenAI apa pun dapat digunakan dengan hanya mengubah base_url. Ollama menyediakan endpoint kompatibel-OpenAI untuk model yang berjalan secara lokal di mesin Anda. Kunavo menyediakannya untuk model frontier yang di-host — Claude, GPT, serta model gambar, video, dan audio — di balik satu bearer token. Panduan ini menjelaskan polanya dan cara berpindah di antara keduanya tanpa menulis ulang kode.
Apa arti "OpenAI-compatible"
Format OpenAI Chat Completions telah menjadi standar de facto: array messages sebagai masukan, choices[].message sebagai keluaran, Server-Sent Events untuk streaming, dan tools untuk pemanggilan fungsi. Endpoint apa pun yang mematuhi kontrak tersebut bersifat "OpenAI-compatible", dan SDK resmi openai (Python, Node, serta setiap port komunitas) dapat diarahkan ke sana dengan mengatur base_url.
Pola Ollama (lokal)
Ollama menjalankan model terbuka secara lokal dan menyediakannya di http://localhost:11434/v1:
from openai import OpenAI
# Ollama exposes an OpenAI-compatible endpoint on localhost
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
resp = client.chat.completions.create(
model="llama3.1",
messages=[{"role": "user", "content": "Summarize this changelog."}],
)
print(resp.choices[0].message.content)Kode yang sama, model frontier yang di-host (Kunavo)
Arahkan SDK yang sama persis ke Kunavo dan pilih model frontier. Hanya base_url, api_key, dan model yang berubah — pemanggilannya sama byte demi byte:
import os
from openai import OpenAI
# Same SDK, same call shape — only base_url, api_key and model change
client = OpenAI(
base_url="https://api.kunavo.com/v1",
api_key=os.environ["KUNAVO_API_KEY"],
)
resp = client.chat.completions.create(
model="claude-sonnet-5", # or claude-haiku-4-5, gpt-5-5, gpt-5-6-terra...
messages=[{"role": "user", "content": "Summarize this changelog."}],
)
print(resp.choices[0].message.content)Dapatkan kunci di /app/keys; quickstart menyediakan bentuk Node dan curl.
Lokal vs di-host — kapan menggunakan yang mana
| Ollama (lokal) | Kunavo (di-host) | |
|---|---|---|
| Kualitas model | Model terbuka (Llama, Qwen, Mistral) | Model terdepan: Claude, GPT |
| Perangkat keras | GPU / RAM Anda | Tidak ada — sepenuhnya di-host |
| Biaya | Gratis (listrik Anda) | Bayar sesuai penggunaan, di bawah harga daftar |
| Privasi | Sepenuhnya offline | Di-host di AS dan diteruskan kepada penyedia model, yang kebijakan retensinya berlaku; tidak ada DPA atau ZDR |
| Multimodal | Terbatas | Gambar, video, audio dengan satu kunci |
Pengaturan umum: Ollama di localhost untuk pengembangan offline, Kunavo untuk kualitas yang di-host dalam produksi — satu variabel lingkungan dapat menukar keduanya. Untuk kontrak per bidang yang diterapkan kedua sisi — parameter, delta streaming, tool_calls, objek usage, dan tabel paritas terhadap permukaan v1 milik Ollama — lihat referensi /v1/chat/completions dan bagian kompatibilitas OpenAI Ollama.
Menemukan model saat runtime
Seperti /api/tags milik Ollama, Kunavo menyediakan katalog berbentuk OpenAI. Selesaikan slug saat runtime, bukan dengan hardcode:
# Discover every enabled model (OpenAI-shaped, like Ollama's /api/tags)
curl https://api.kunavo.com/v1/models \
-H "Authorization: Bearer $KUNAVO_API_KEY"Di luar chat
Kunci yang sama menjangkau endpoint gambar (/v1/images/generations), video (/v1/video/generations), dan audio — semuanya berbentuk OpenAI. Lihat panduan AI multimodal dan perbandingan OpenRouter untuk mengetahui perbedaan Kunavo dari gateway lain.
Ada satu permukaan yang melampaui definisi umum “compatible” dan perlu diketahui: POST /v1/responses. Codex CLI hanya menerima penyedia khusus melalui Responses API, sehingga sebagian besar gateway yang kompatibel dengan OpenAI sama sekali tidak dapat menggerakkannya — biaya Codex per token menyelesaikannya dengan blok konfigurasi yang dapat dijalankan. Untuk menetapkan harga workload GPT termasuk input yang di-cache, kalkulator harga API OpenAI menggunakan jumlah token Anda sendiri.
Pertanyaan umum
Apa yang dimaksud dengan API yang kompatibel dengan OpenAI?
API yang menggunakan format wire yang sama dengan /v1/chat/completions milik OpenAI — isi permintaan sama, bentuk respons sama, dan streaming sama. SDK atau alat OpenAI apa pun dapat digunakan dengan mengubah hanya base_url dan api_key. Ollama menyediakan API semacam ini untuk model lokal; Kunavo menyediakannya untuk model frontier yang di-host.
Apakah ada API yang kompatibel dengan OpenAI untuk model yang di-host seperti yang dimiliki Ollama untuk model lokal?
Ya. Endpoint kompatibel-OpenAI milik Ollama menjalankan model lokal di mesin Anda; milik Kunavo menjalankan Claude, GPT, serta model gambar, video, dan audio yang di-host di balik satu base_url (https://api.kunavo.com/v1) dan satu bearer token. Kode pemanggilnya identik.
Bisakah saya tetap menggunakan Ollama secara lokal dan Kunavo dalam produksi?
Ya — ini pola yang umum. Karena keduanya kompatibel dengan OpenAI, Anda dapat mengganti lingkungan dengan menukar base_url dan model: Ollama di localhost untuk pengembangan offline, Kunavo untuk kualitas frontier yang di-host dalam produksi. Tidak perlu mengubah SDK.
Model apa yang dapat saya panggil melalui endpoint yang kompatibel dengan OpenAI?
Setiap model yang diaktifkan — Claude, GPT, dan lainnya untuk chat, ditambah gambar, video, dan audio pada endpoint berbentuk OpenAI masing-masing. GET /v1/models mengembalikan daftar langsung; selesaikan slug saat runtime, bukan dengan hardcode. Jelajahi katalog model.
Bagaimana dengan batas laju?
Setiap penyedia menetapkan batasnya sendiri, dan 429 berarti Anda melampaui salah satunya — lihat batas laju API OpenAI untuk mengetahui batas mana yang terpicu dan backoff yang memperbaikinya, serta Claude API 429 rate_limit_error untuk padanan Anthropic.