LiteLLM: Universal API Gateway untuk 100+ Model LLM
Dalam dunia AI yang berkembang pesat, kita dihadapkan dengan puluhan penyedia LLM (Large Language Model) seperti OpenAI, Anthropic, Google Gemini, Cohere, Ollama, dan masih banyak lagi. Setiap penyedia memiliki format API, autentikasi, dan parameter yang berbeda-beda. Bayangkan jika Anda bisa memanggil semua model tersebut dengan satu interface yang seragam. Itulah yang ditawarkan oleh LiteLLM.
LiteLLM adalah library Python open-source yang menyediakan unified interface untuk memanggil 100+ model LLM menggunakan format OpenAI API. Dengan LiteLLM, Anda cukup menulis kode sekali dan bisa berpindah antar provider tanpa mengubah kode sama sekali.
Mengapa LiteLLM?
Berikut beberapa alasan mengapa LiteLLM menjadi pilihan populer:
- Unified API: Satu format pemanggilan untuk semua provider
- 100+ Model: Mendukung OpenAI, Anthropic, Google, Cohere, Ollama, HuggingFace, dan lainnya
- OpenAI-Compatible Proxy: Jalankan proxy server yang kompatibel dengan OpenAI API
- Fallback & Retry: Otomatis berpindah ke model lain jika satu model gagal
- Cost Tracking: Lacak biaya penggunaan setiap model
- Load Balancing: Distribusikan request ke beberapa model/provider
- Streaming: Dukungan streaming response bawaan
- Production Ready: Router untuk deployment produksi skala besar
Instalasi dan Setup
Instalasi LiteLLM
Instal LiteLLM menggunakan pip:
pip install litellm
Untuk fitur proxy server, instal dengan dependensi tambahan:
pip install 'litellm[proxy]'
Konfigurasi API Key
Sebelum mulai, siapkan API key dari provider yang ingin Anda gunakan. Simpan sebagai environment variable:
# OpenAI
export OPENAIAPIKEY="sk-your-openai-key"
Anthropic
export ANTHROPICAPIKEY="sk-ant-your-anthropic-key"
Google Gemini
export GEMINIAPIKEY="your-gemini-key"
Atau gunakan file .env
Anda juga bisa menggunakan file .env dan memuat dengan python-dotenv:
from dotenv import loaddotenv
load
dotenv()
Basic Completion Calls
Memanggil OpenAI GPT
import litellm
Panggil OpenAI GPT-4o
response = litellm.completion(
model="gpt-4o",
messages=[
{"role": "system", "content": "Kamu adalah asisten yang membantu."},
{"role": "user", "content": "Jelaskan apa itu machine learning dalam 2 kalimat."}
]
)
print(response.choices[0].message.content)
Memanggil Anthropic Claude
# Panggil Anthropic Claude - cukup ganti nama model!
response = litellm.completion(
model="anthropic/claude-sonnet-4-20250514",
messages=[
{"role": "user", "content": "Jelaskan apa itu neural network dalam 2 kalimat."}
]
)
print(response.choices[0].message.content)
Memanggil Google Gemini
# Panggil Google Gemini
response = litellm.completion(
model="gemini/gemini-2.0-flash",
messages=[
{"role": "user", "content": "Apa perbedaan supervised dan unsupervised learning?"}
]
)
print(response.choices[0].message.content)
Memanggil Ollama (Model Lokal)
# Panggil model lokal via Ollama
response = litellm.completion(
model="ollama/llama3",
messages=[
{"role": "user", "content": "Tulis fungsi Python untuk menghitung fibonacci."}
],
apibase="http://localhost:11434"
)
print(response.choices[0].message.content)
Unified Interface - Satu Kode, Banyak Provider
Keunggulan utama LiteLLM adalah Anda bisa membuat fungsi generic yang bekerja dengan provider mana pun:
import litellm
def tanyaai(pertanyaan: str, model: str = "gpt-4o") -> str:
"""Fungsi universal untuk bertanya ke AI model mana pun."""
response = litellm.completion(
model=model,
messages=[
{"role": "user", "content": pertanyaan}
],