Cara Pasang LiteLLM sebagai Router Banyak Model AI
Pasang LiteLLM Proxy dengan Docker agar aplikasi memanggil OpenAI, Anthropic, Ollama, dan vLLM lewat satu API, lengkap dengan kunci dan fallback.
Jawaban singkat
LiteLLM Proxy adalah gateway open-source yang menyatukan banyak penyedia model AI di balik satu API format OpenAI. Pasang dengan Docker, daftarkan model di config.yaml, set LITELLM_MASTER_KEY, lalu aplikasi cukup memanggil port 4000. Tambahkan Postgres bila butuh kunci per tim dan pencatatan biaya.
Daftar isi
- Bagaimana memasang LiteLLM Proxy?
- Langkah 1: Siapkan server dan Docker
- Langkah 2: Buat kunci utama
- Langkah 3: Daftarkan model di config.yaml
- Langkah 4: Jalankan container
- Langkah 5: Uji dengan curl
- Langkah 6: Tambahkan database untuk kunci per tim
- Langkah 7: Buka ke jaringan dengan aman
- Pengaturan apa yang sering ditambahkan?
- Pertanyaan yang sering diajukan
Aplikasimu memanggil OpenAI untuk satu fitur, Claude untuk fitur lain, dan model lokal di Ollama untuk data sensitif? Setiap penyedia punya format API, kunci, dan cara menangani error sendiri. Lama-lama kode jadi penuh percabangan. LiteLLM Proxy menyelesaikan ini dengan menjadi satu pintu: aplikasi hanya bicara dengan LiteLLM memakai format OpenAI, dan LiteLLM yang meneruskan ke penyedia yang tepat.
Konsep di baliknya disebut AI gateway. Selain menyatukan API, LiteLLM bisa membagi beban ke beberapa server, mengalihkan ke model cadangan saat satu penyedia bermasalah, dan memberi kunci terpisah per tim. Panduan ini memakai Docker di server Linux dan mengacu ke dokumentasi resmi LiteLLM per 7 November 2026.
Bagaimana memasang LiteLLM Proxy?
Langkah 1: Siapkan server dan Docker
LiteLLM Proxy sendiri ringan karena tidak menjalankan model, hanya meneruskan permintaan. VPS kecil sudah cukup untuk memulai. Pasang Docker dan Docker Compose lebih dulu, misalnya dengan panduan install Docker di Ubuntu.
Buat folder kerja:
mkdir -p ~/litellm && cd ~/litellm
Langkah 2: Buat kunci utama
LiteLLM membutuhkan LITELLM_MASTER_KEY sebagai kunci akar. Menurut dokumentasinya, proxy menolak berjalan tanpa kunci ini, dan kunci yang sama menjadi kata sandi default Admin UI. Buat file .env berisi kunci acak dan kunci API penyedia:
printf 'LITELLM_MASTER_KEY=sk-%s\nLITELLM_SALT_KEY=sk-%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
echo 'OPENAI_API_KEY=isi-kunci-openai' >> .env
echo 'ANTHROPIC_API_KEY=isi-kunci-anthropic' >> .env
chmod 600 .env
LITELLM_SALT_KEY dipakai untuk mengenkripsi kunci penyedia yang kamu tambahkan lewat UI. Simpan baik-baik, karena kalau diganti, kredensial yang tersimpan tidak bisa dibaca lagi.
Langkah 3: Daftarkan model di config.yaml
Buat config.yaml. Kolom model_name adalah nama yang dipanggil aplikasi, sedangkan litellm_params.model menunjuk penyedia dan model sebenarnya dengan awalan penyedia:
model_list:
- model_name: cepat
litellm_params:
model: openai/NAMA_MODEL_OPENAI
api_key: os.environ/OPENAI_API_KEY
- model_name: pintar
litellm_params:
model: anthropic/NAMA_MODEL_CLAUDE
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: lokal
litellm_params:
model: ollama_chat/llama3.2:3b
api_base: http://IP_SERVER_OLLAMA:11434
- model_name: lokal-gpu
litellm_params:
model: hosted_vllm/Qwen/Qwen2.5-7B-Instruct
api_base: http://IP_SERVER_VLLM:8000
api_key: os.environ/VLLM_API_KEY
litellm_settings:
num_retries: 2
request_timeout: 60
Ganti NAMA_MODEL_... dengan ID model dari dokumentasi penyedia. Sintaks os.environ/NAMA membuat LiteLLM membaca kunci dari variabel lingkungan, jadi kunci tidak tertulis di file konfigurasi. Untuk Ollama, dokumentasi LiteLLM menyarankan awalan ollama_chat/. Untuk server vLLM, pakai awalan hosted_vllm/ (sertakan VLLM_API_KEY di .env bila server vLLM-mu memakai kunci). Hapus entri yang tidak kamu pakai.
Memakai nama samaran seperti cepat dan pintar punya keuntungan: kalau suatu hari kamu ganti model, cukup ubah konfigurasi tanpa menyentuh kode aplikasi.
Langkah 4: Jalankan container
docker run -d --name litellm --restart unless-stopped \
--env-file .env \
-v $(pwd)/config.yaml:/app/config.yaml \
-p 127.0.0.1:4000:4000 \
docker.litellm.ai/berriai/litellm:latest \
--config /app/config.yaml
Perhatikan 127.0.0.1:4000:4000. Port hanya dibuka untuk server itu sendiri. Tanpa awalan alamat, Docker akan membuka port ke semua antarmuka, bahkan melewati aturan UFW. Kalau Ollama berjalan di server yang sama tetapi di luar Docker, alamat localhost dari dalam container tidak menunjuk ke host, jadi pakai IP host atau atur jaringan Docker dengan sesuai. Cek log dengan docker logs -f litellm.
Langkah 5: Uji dengan curl
curl http://127.0.0.1:4000/v1/chat/completions \
-H "Authorization: Bearer ISI_LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"cepat","messages":[{"role":"user","content":"Halo dalam lima kata."}]}'
Ganti cepat dengan pintar atau lokal untuk menguji model lain. Di aplikasi, set base_url SDK OpenAI ke alamat LiteLLM dan pakai kunci LiteLLM, bukan kunci penyedia.
Langkah 6: Tambahkan database untuk kunci per tim
Konfigurasi di atas sudah cukup sebagai router. Tetapi untuk membuat virtual key, misalnya satu kunci per aplikasi dengan batas anggaran sendiri, LiteLLM butuh database Postgres. Dokumentasi resminya menyebut permintaan dengan virtual key akan gagal bila database tidak terhubung.
Cara termudah adalah memakai berkas docker-compose.quickstart.yml dari repositori LiteLLM yang sudah berisi gateway dan Postgres, lalu menambahkan mount config.yaml milikmu. Setelah itu, Admin UI tersedia di /ui dengan pengguna admin dan kata sandi dari LITELLM_MASTER_KEY. Pengaturan anggaran dan kuota dibahas di membatasi kuota dan biaya API AI per tim.
Langkah 7: Buka ke jaringan dengan aman
Kalau aplikasi berada di server lain, jangan buka port 4000 langsung. Taruh reverse proxy seperti Nginx atau Caddy dengan HTTPS di depannya, atau hubungkan server lewat jaringan privat. Jangan bagikan master key ke aplikasi. Buat virtual key untuk tiap aplikasi agar mudah dicabut bila bocor.
Pengaturan apa yang sering ditambahkan?
| Kebutuhan | Pengaturan di config.yaml | Catatan |
|---|---|---|
| Coba ulang saat error | litellm_settings.num_retries | Mulai dari 2 |
| Batas waktu | litellm_settings.request_timeout | Dalam detik |
| Model cadangan | router_settings.fallbacks | Dibahas di artikel fallback |
| Bagi beban ke beberapa server | Beberapa entri dengan model_name sama | Pilih routing_strategy |
| Jeda untuk server yang sering gagal | router_settings.allowed_fails dan cooldown_time | Server dilewati sementara |
Pengaturan model cadangan secara rinci ada di fallback otomatis antar model AI.
Pertanyaan yang sering diajukan
Apakah LiteLLM menambah latensi?
Ada tambahan kecil karena permintaan melewati satu lompatan lagi. Untuk sebagian besar aplikasi, ini jauh lebih kecil dibanding waktu model menghasilkan jawaban. Letakkan LiteLLM dekat dengan aplikasimu.
Apakah LiteLLM gratis?
Inti LiteLLM Proxy bersifat open-source dan bisa dijalankan sendiri. Ada juga fitur dan layanan berbayar untuk perusahaan. Cek halaman resminya untuk rincian terbaru.
Bisakah aplikasi memanggil model Claude dengan format OpenAI lewat LiteLLM?
Bisa. LiteLLM menerjemahkan permintaan format OpenAI ke API penyedia yang dituju, lalu mengembalikan jawaban dalam format OpenAI.
Bagaimana memperbarui LiteLLM?
Tarik image terbaru, hentikan dan hapus container lama, lalu jalankan ulang dengan perintah yang sama. Konfigurasi dan .env tetap di folder host. Baca catatan rilis karena beberapa versi mengubah perilaku.
Checklist setelah pemasangan:
.envberizin 600 dan tidak masuk repositori kode.- Port 4000 hanya terikat ke
127.0.0.1atau jaringan privat. - Semua model di
config.yamllolos uji curl. - Aplikasi memakai virtual key, bukan master key.
- Akses dari luar lewat HTTPS.


