Lewati ke isi

AI & Otomasi

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.

Terbit 6 menit baca

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
  1. Bagaimana memasang LiteLLM Proxy?
  2. Langkah 1: Siapkan server dan Docker
  3. Langkah 2: Buat kunci utama
  4. Langkah 3: Daftarkan model di config.yaml
  5. Langkah 4: Jalankan container
  6. Langkah 5: Uji dengan curl
  7. Langkah 6: Tambahkan database untuk kunci per tim
  8. Langkah 7: Buka ke jaringan dengan aman
  9. Pengaturan apa yang sering ditambahkan?
  10. 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?

KebutuhanPengaturan di config.yamlCatatan
Coba ulang saat errorlitellm_settings.num_retriesMulai dari 2
Batas waktulitellm_settings.request_timeoutDalam detik
Model cadanganrouter_settings.fallbacksDibahas di artikel fallback
Bagi beban ke beberapa serverBeberapa entri dengan model_name samaPilih routing_strategy
Jeda untuk server yang sering gagalrouter_settings.allowed_fails dan cooldown_timeServer 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:

  • .env berizin 600 dan tidak masuk repositori kode.
  • Port 4000 hanya terikat ke 127.0.0.1 atau jaringan privat.
  • Semua model di config.yaml lolos uji curl.
  • Aplikasi memakai virtual key, bukan master key.
  • Akses dari luar lewat HTTPS.

Sumber & referensi

Baca juga