Satu API untuk Semua LLM: LiteLLM Proxy sebagai AI Gateway
Aplikasi kamu ngobrol ke tiga provider LLM yang beda-beda. Tiap provider punya SDK sendiri, auth sendiri, error handling sendiri. Mau ganti dari OpenAI ke Anthropic, kamu harus nulis ulang lapisan client, update handling tool call, terus tes ulang. Dan di tengah semua itu, belum tentu ada yang tahu tim ini sebenernya keluar duit berapa buat API. Proxy yang duduk di depan semua provider nyelesain ini. Kamu dapet satu endpoint, satu format, satu tempat buat pantau biaya. LiteLLM itu gateway self-hosted yang paling sering dipilih tim, dan dia open source.
Panduan ini bawa kamu dari instalasi kosong sampai gateway jalan dengan banyak provider, virtual key, budget, pelacakan biaya, dan load balancing. Semua command di bawah sesuai dokumentasi resmi sekarang (September 2026).
Prasyarat
- Python 3.10+. LiteLLM 1.84.0 ke atas butuh versi segitu.
uvterinstall, atau pip.uv tool installotomatis nyiapin Python yang cocok.- Docker, cuma kalau mau ikut step budget dan biaya (buat PostgreSQL lokal).
- Opsional: API key OpenAI, API key Anthropic, dan server Ollama yang jalan.
Yang kamu bangun
Request masuk ke satu endpoint (http://0.0.0.0:4000). Proxy yang mutusin provider asli mana yang dipanggil, nerapin rate limit dan budget, nyatet biaya, terus balikin respons format OpenAI. Aplikasi kamu cuma kenal format OpenAI.
Langkah 1: Instal
Cara yang didukung:
uv tool install 'litellm[proxy]'
Utamakan uv. pip install 'litellm[proxy]' biasa di interpreter di bawah 3.10 diam-diam jatuh ke versi terakhir yang masih ngizinin, yaitu 1.83.9. Kalau hasilnya kelihatan ke-pin, cek python --version terus install ulang pake uv.
Langkah 2: Satu model, jalan pertama
Buat satu provider aja, kamu nggak perlu file config. Set key di environment terus jalanin:
export OPENAI_API_KEY=sk-...
litellm --model gpt-4o
Proxy mulai di http://0.0.0.0:4000. Buka terminal kedua terus cek:
litellm --test
Ini ngirim request openai.chat.completions beneran lewat proxy. Command test butuh OpenAI Python package v1.0.0+.
Langkah 3: Route banyak provider dengan config.yaml
Di sini gateway mulai berasa gunanya. Bikin config.yaml:
model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
- model_name: claude-opus
litellm_params:
model: anthropic/claude-opus-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: llama3.1
litellm_params:
model: ollama_chat/llama3.1
api_base: http://localhost:11434
litellm_settings:
drop_params: true
general_settings:
master_key: sk-key-admin-kamu
Aturan yang penting diinget:
model_nameitu nama yang dikirim client.litellm_params.modelitu string provider aslinya.- Prefix
openai/dananthropic/ngasih tau LiteLLM mau pake SDK provider mana. Ollama punya prefix khususollama_chat/yang nembak endpoint/api/chatdan hasilnya umumnya lebih bagus daripada varianollama/mentah. os.environ/OPENAI_API_KEYbaca key dari environment variable, bukan naro key mentah di file.master_keynge-set key admin proxy dan wajib diawalisk-.
Jalanin:
litellm --config config.yaml
Di log harusnya keliatan LiteLLM: Proxy initialized with Config, Set models:. Kalau nggak, jalanin pake --detailed_debug.
Langkah 4: Panggil
Dari OpenAI SDK. Di sisi client nggak ada lagi logika pindah provider, justru itu intinya:
from openai import OpenAI
client = OpenAI(api_key="anything", base_url="http://localhost:4000")
resp = client.chat.completions.create(
model="claude-opus", # nama model_name dari config.yaml
messages=[{"role": "user", "content": "Ringkas ini dalam tiga kalimat."}],
)
print(resp.choices[0].message.content)
api_key di client nggak dicek kecuali kamu set master_key. Arahin aja client OpenAI-compatible apa pun ke http://localhost:4000, kamu dapet endpoint chat, completion, dan embeddings yang udah biasa.
Langkah 5: Virtual key dan pelacakan biaya
Key, budget, dan biaya butuh database. LiteLLM pake PostgreSQL. Opsi termudah buat lokal, pake container:
docker run --name litellm-db \
-e POSTGRES_USER=user -e POSTGRES_PASSWORD=pass -e POSTGRES_DB=litellm \
-p 5432:5432 -d postgres:16
Daftarin di config dengan nambahin di bawah general_settings::
general_settings:
master_key: sk-key-admin-kamu
database_url: "postgresql://user:pass@localhost:5432/litellm"
Restart proxy. Sekarang virtual key beneran bisa dibuat, dan cuma master key yang bisa ngebuatnya:
curl 'http://localhost:4000/key/generate' \
-H 'Authorization: Bearer sk-key-admin-kamu' \
-H 'Content-Type: application/json' \
-d '{"models": ["claude-opus", "gpt-4o"], "duration": "30d"}'
Key sk-... yang dihasilkan kasih ke teman satu tim. Aplikasi mereka manggil proxy pake key itu, dan proxy nyatet tiap request. Cek biaya sebuah key kapan aja:
curl 'http://localhost:4000/key/info?key=<key-user>' \
-H 'Authorization: Bearer sk-key-admin-kamu'
Responsnya ada field spend dalam USD. Biaya juga dicatat per user dan per team kalau kamu bikin key lewat /user/new dan /team/new. Baris itu punya max_budget yang bisa kamu set biar request yang buang-buang duit langsung ditolak dari pada diam-diam nagih ke kartu kamu.
Langkah 6: Load balancing dan rate limit
Buat nyebar traffic ke beberapa deployment model yang sama, kasih model_name yang sama ke dua entri. Proxy yang load balance di antara keduanya, dan rpm ngecap tiap deployment:
model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
rpm: 100
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o-backup
api_key: os.environ/OPENAI_API_KEY
rpm: 50
Dokumen resmi nyebut proxy bisa nanganin 1.5k+ request per detik di load test mereka. Itu angka buat server GPU gede, bukan sesuatu yang bakal kamu temuin di laptop. Buat kebanyakan tim, nilai pentingnya di routing, budget, dan key yang dibagi, bukan throughput puncak.
Kapan pake LiteLLM dibanding alternatif
- SDK provider langsung. Pilihan pas buat prototipe satu provider, tapi kamu kehilangan kemudahan ganti provider di belakang tanpa nyentuh kode.
- OpenRouter. Router hosted dengan virtual key gratis, tapi data dan key kamu numpang di infrastruktur mereka, dan analitik biaya nempel ke katalog model mereka.
- Cloudflare AI Gateway. Bagus kalau udah jalan di Cloudflare, tapi tertutup dan dibangun di sekitar platform CF.
- Kong AI Gateway atau Portkey. API management enterprise penuh. Kebanyakan kecuali kamu butuh SSO, kebijakan level organisasi, dan plugin custom.
- LiteLLM. Self-hosted, open source, jalan buat model lokal dan data privat, dan biaya tercatat di database yang kamu punya. Taruhan dari self-hosted: kamu yang jalanin dan jagain sendiri.
Langkah selanjutnya
- Tambahin model embedding ke list dan pake
/embeddingsbuat pipeline RAG. - Pasang model alias biar sebuah key bisa naikin request dari
gpt-4okeclaude-opustanpa ngubah kode client. - Sambungin
success_callbackke Langfuse atau Slack buat logging dan alert. - Baca FAQ dulu sebelum nge-expose proxy ke internet. Master key itu yang ngejaga orang lain nggak pake provider kamu gratisan.