Dokumentasi
API Ollama yang kompatibel dengan OpenAI
Ollama menyediakan API yang kompatibel dengan OpenAI untuk model lokal. Berikut cara memanggilnya dengan OpenAI SDK — dan cara menggunakan kode yang sama untuk mengakses Claude dan GPT yang dihosting dengan hanya mengubah base_url dan model.
Ollama menjalankan model terbuka di komputer Anda dan menyediakannya melalui API yang kompatibel dengan OpenAI di http://localhost:11434/v1. Karena format komunikasinya cocok dengan OpenAI, OpenAI SDK resmi dapat digunakan dengan Ollama tanpa perubahan — dan kode yang sama dapat mengakses model frontier yang dihosting dengan hanya mengubah URL dasar.
http://localhost:11434/v1. Atur base_url klien OpenAI ke alamat tersebut dan gunakan api_key placeholder apa pun. Untuk menggunakan Claude/GPT yang dihosting, ubah base_url ke https://api.kunavo.com/v1 dan ganti slug model — tidak ada perubahan lain.Apa itu API Ollama yang kompatibel dengan OpenAI
Ollama adalah proyek sumber terbuka terpisah untuk menjalankan model seperti Llama, Qwen, dan Mistral secara lokal. Selain API bawaannya, Ollama menyediakan antarmuka yang kompatibel dengan OpenAI, sehingga alat yang dibuat untuk OpenAI dapat digunakan tanpa penulisan ulang. API ini menerapkan endpoint yang paling sering digunakan aplikasi:
| Endpoint | Tujuan |
|---|---|
POST /v1/ | Chat — endpoint yang paling sering digunakan aplikasi |
POST /v1/ | Completions teks lama |
POST /v1/ | Embeddings untuk model lokal |
GET /v1/models | Daftar model yang telah diunduh secara lokal |
API ini mencakup chat, completions, dan embeddings (serta input visi pada model lokal multimodal). API ini tidak menghasilkan gambar, video, atau audio. Kunavo menerapkan kontrak /v1/chat/completions yang sama — referensi tersebut mendokumentasikan setiap parameter, bentuk delta streaming, dan objek usage, serta menyertakan tabel kesetaraan baris demi baris dengan antarmuka v1 Ollama.
Memanggil Ollama dengan OpenAI SDK
Arahkan base_url ke http://localhost:11434/v1. SDK memerlukan api_key, tetapi Ollama lokal mengabaikan nilainya — berikan string apa pun. Atur model ke model yang sudah Anda unduh (misalnya, ollama pull llama3.2).
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1", # Ollama's OpenAI-compatible API
api_key="ollama", # required by the SDK, ignored by local Ollama
)
resp = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)Atau gunakan curl:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "Hello, Ollama"}]
}'Kode yang sama, model frontier yang dihosting
Ollama ideal untuk pengembangan offline dan pekerjaan yang sensitif terhadap privasi, tetapi kemampuan model lokal masih tertinggal dari model frontier dalam penalaran sulit, pemrograman, dan konteks panjang. Karena Kunavo juga kompatibel dengan OpenAI, mengalihkan panggilan ke model yang dihosting hanya memerlukan perubahan dua baris — base_url dan slug model:
from openai import OpenAI
client = OpenAI(
base_url="https://api.kunavo.com/v1", # only this line changes
api_key="sk-kn-...", # a real key now
)
resp = client.chat.completions.create(
model="claude-sonnet-5", # a hosted frontier model
messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)| Ollama (lokal) | Kunavo (di-host) | |
|---|---|---|
| URL dasar | localhost: | api. |
| Berjalan di | Komputer Anda | API terkelola |
| Model | Model terbuka lokal | Claude, GPT, Veo, Suno |
| Modalitas | Teks + embeddings | Teks, gambar, video, audio |
| Biaya | Perangkat keras / listrik Anda | Per token, di bawah harga daftar |
| Paling cocok untuk | Pengembangan offline, privasi | Kualitas frontier untuk produksi |
Beralih melalui variabel lingkungan
Pola yang umum adalah menggunakan Ollama untuk pengembangan lokal dan model yang dihosting di produksi, dengan pemilihan melalui variabel lingkungan. Kode klien dan permintaan tetap sama — hanya base_url dan model yang berbeda:
import os
from openai import OpenAI
# One client, switched by environment. Local for dev, hosted for prod.
if os.getenv("APP_ENV") == "production":
client = OpenAI(base_url="https://api.kunavo.com/v1",
api_key=os.environ["KUNAVO_API_KEY"])
MODEL = "claude-haiku-4-5"
else:
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
MODEL = "llama3.2"
resp = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": "ping"}],
)
print(resp.choices[0].message.content)Pertanyaan umum
Apakah Ollama memiliki API yang kompatibel dengan OpenAI?
Ya. Ollama menyediakan REST API yang kompatibel dengan OpenAI di http://localhost:11434/v1 dengan /chat/completions, /completions, /embeddings, dan /models. Arahkan OpenAI SDK resmi ke base_url tersebut, berikan string apa pun sebagai api_key (Ollama mengabaikannya secara lokal), dan atur model ke model yang sudah diunduh seperti llama3.2. Bentuk permintaan dan responsnya sama dengan OpenAI.
URL dasar apa yang digunakan API OpenAI Ollama?
http://localhost:11434/v1 by default. Set the OpenAI client base_url to that value. If Ollama runs on another host or port, substitute it — the /v1 suffix stays.
Bagaimana cara beralih dari Ollama ke model yang dihosting?
Karena keduanya kompatibel dengan OpenAI, Anda hanya perlu mengubah base_url dan model. Ganti http://localhost:11434/v1 dengan https://api.kunavo.com/v1, gunakan kunci sk-kn- yang valid, dan atur model ke slug yang dihosting seperti claude-sonnet-5 atau claude-haiku-4-5. Tidak perlu perubahan kode lain.
Apakah API OpenAI Ollama mendukung gambar atau video?
Antarmuka Ollama yang kompatibel dengan OpenAI mencakup chat, completions, dan embeddings, serta input visi pada model lokal multimodal. API ini tidak menghasilkan gambar, video, atau audio. Untuk menghasilkan gambar, video, dan audio yang dihosting melalui API bergaya OpenAI yang sama, gunakan endpoint Kunavo /v1/images, /v1/video, dan /v1/audio.