Kembali ke panduan
API·1 Juli 2026·Diperbarui 4 Oktober 2026·Baca 7 menit

Panduan API yang kompatibel dengan OpenAI — dari endpoint lokal Ollama hingga model frontier ter-host

"OpenAI-compatible" berarti SDK OpenAI apa pun dapat digunakan hanya dengan mengubah base_url. Ollama menyediakan endpoint untuk model lokal; Kunavo menyediakan endpoint untuk model frontier yang di-host. Berikut polanya dan cara berpindah di antara keduanya tanpa menulis ulang kode.

Terakhir ditinjau pada .

"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:

ollama.py
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:

kunavo.py
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 modelModel terbuka (Llama, Qwen, Mistral)Model terdepan: Claude, GPT
Perangkat kerasGPU / RAM AndaTidak ada — sepenuhnya di-host
BiayaGratis (listrik Anda)Bayar sesuai penggunaan, di bawah harga daftar
PrivasiSepenuhnya offlineDi-host di AS dan diteruskan kepada penyedia model, yang kebijakan retensinya berlaku; tidak ada DPA atau ZDR
MultimodalTerbatasGambar, 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:

models.sh
# 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.