Tóm tắt nhanh:
- LiteLLM là một LLM Gateway/OpenAI proxy giúp bạn gọi hàng trăm mô hình từ OpenAI, Azure, Anthropic, Google, Hugging Face, Bedrock… thông qua một API chuẩn OpenAI duy nhất, giảm cực mạnh độ phức tạp tích hợp và vendor lock-in.
- Bạn có thể dùng LiteLLM như một Python SDK hoặc self-hosted proxy server để quản lý authentication, load balancing, fallback, tracking chi phí và rate limit cho từng user/virtual key – rất phù hợp cho SaaS, sản phẩm AI multi-tenant và hệ thống agent.
- Bài viết hướng dẫn cách cài LiteLLM (pip/Docker), bật proxy, cấu hình nhiều provider trong
config.yamlvà drop-in replace OpenAI API trong app/web/self-hosted agent của bạn.
LiteLLM là một AI gateway mã nguồn mở (LLM Proxy) cho phép bạn gọi hơn 100 nhà cung cấp LLM thông qua cùng một format API tương thích OpenAI, thay vì phải dùng nhiều SDK riêng lẻ.
Nó hỗ trợ các provider phổ biến như OpenAI, Azure OpenAI, Anthropic, Cohere, Google, AWS Bedrock, Hugging Face, vLLM, NVIDIA NIM… và trừu tượng hóa các khác biệt về endpoint, tham số, exception để bạn chỉ làm việc với một API thống nhất.
Về kiến trúc, LiteLLM có hai cách dùng chính:
- Python SDK: import
litellmtrong code, gọicompletion()/routerđể truy cập nhiều model khác nhau. - Proxy server: chạy một OpenAI-compatible HTTP server, bất kỳ client nào hiểu API OpenAI đều có thể dùng (Node, Python, PHP, n8n, backend của bạn…).
Tại sao nên dùng LiteLLM cho dự án và agent của bạn?
Nếu bạn đang build nhiều website, API hoặc AI agent, việc trực tiếp tích hợp OpenAI, Anthropic, Google, Cohere… thường gặp vài vấn đề:
- Mỗi provider một SDK, auth, quota, giới hạn request khác nhau.
- Khó switch model khi giá thay đổi hoặc khi muốn tận dụng model rẻ hơn/nhanh hơn.
- Khó track chi phí, chia budget cho từng user, project hay workspace.
LiteLLM giải quyết bằng cách:
- Cung cấp một API OpenAI-compatible để wrap tất cả provider.
- Tự dịch request sang format của từng provider và map response về schema chuẩn.
- Hỗ trợ load balancing, retry/fallback, spend tracking, budget per key/user và rate limit.
Nhờ đó, bạn dễ dàng:
- Tắt/bật model theo chi phí và hiệu năng mà không phải sửa app frontend/backend.
- Chạy self-hosted gateway đứng trước mọi app/web/n8n workflow.
- Tích hợp với các công cụ như Open WebUI, LangChain, LlamaIndex… chỉ bằng việc đổi
base_url.

Cài đặt LiteLLM bằng Python SDK
Cách đơn giản nhất là cài LiteLLM như một package Python.
Bước 1: Cài gói
pip install litellmHoặc với trình quản lý mới như uv:
uv add litellmBước 2: Thiết Lập API Key
LiteLLM đọc key từ biến môi trường. Ví dụ:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export COHERE_API_KEY="..."Bạn có thể set thêm key khác như HUGGINGFACE_API_KEY, AZURE_API_KEY, BEDROCK, v.v.
Bước 3: Gọi Model Qua SDK
Ví dụ gọi một model theo kiểu OpenAI:
from litellm import completion
import os
os.environ["OPENAI_API_KEY"] = "sk-..."
response = completion(
model="gpt-4o",
messages=[{"role": "user", "content": "Xin chào, hãy tóm tắt LiteLLM giúp mình"}],
)
print(response["choices"][0]["message"]["content"])Bạn cũng có thể gọi model từ nhà cung cấp khác bằng cách dùng prefix, ví dụ: azure/gpt-4o, anthropic/claude-3-sonnet, vertex_ai/gemini-1.5-pro, vllm/meta-llama-3-8b…
Chạy LiteLLM như một OpenAI-Compatible Proxy Server
Đây là mode rất phù hợp với workflow self-hosted, app đa ngôn ngữ, hoặc khi bạn muốn cho nhiều service dùng chung gateway.
Bước 1: Cài bản proxy
pip install "litellm[proxy]"Bước 2: Chạy proxy tối thiểu
Chạy server với một model cụ thể:
litellm --model openai/gpt-4o
# INFO: Proxy running on http://0.0.0.0:8000Hoặc một model local như vLLM/Ollama:
litellm --model vllm/meta-llama-3-8b
# hoặc
litellm --model ollama/llama3Proxy sẽ expose các endpoint OpenAI chuẩn như /v1/chat/completions, /v1/completions, /v1/embeddings tùy config.
Bước 3: Test với OpenAI SDK
Bên phía client, bạn chỉ cần đổi base_url sang proxy của mình:
import openai
openai.api_key = "sk-litellm-master-key" # hoặc key bạn cấu hình
openai.api_base = "http://localhost:8000"
resp = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello LiteLLM"}],
)
print(resp.choices[0].message["content"])Mọi thay đổi model/provider giờ được xử lý ở gateway, không cần chỉnh code app.
Cấu hình nhiều provider trong config.yaml
Thay vì chỉ truyền --model, bạn có thể khai báo nhiều model/provider trong file cấu hình để:
- Gắn alias dễ nhớ cho từng model.
- Định nghĩa provider/backend, API base, API key, region…
- Thiết lập load balancing, fallback logic giữa các model.
Ví dụ config.yaml giản lược:
model_list:
- model_name: gpt4o
litellm_params:
model: azure/gpt-4o
api_base: os.environ/AZURE_API_BASE
api_version: "2024-02-15-preview"
api_key: os.environ/AZURE_API_KEY
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-3-sonnet
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: local-llama
litellm_params:
model: vllm/meta-llama-3-8b
api_base: http://vllm-server:8000Chạy proxy với config:
litellm --config /path/to/config.yaml
# Proxy running on http://0.0.0.0:4000Client chỉ cần gọi model="gpt4o" hoặc model="local-llama" mà không quan tâm backend là gì.
Dùng Docker để triển khai LiteLLM Proxy
Với hạ tầng self-hosted, bạn có thể bọc LiteLLM trong container và deploy lên server hoặc Kubernetes.
Một Docker run đơn giản (dựa trên hướng dẫn chung của LiteLLM và các proxy tương tự):
docker run -d \
--name litellm-proxy \
-p 4000:4000 \
-e OPENAI_API_KEY="sk-..." \
-v $(pwd)/config.yaml:/app/config.yaml \
ghcr.io/berriai/litellm:latest \
litellm --config /app/config.yamlBạn có thể:
- Đặt container sau
nginx/traefikvới HTTPS. - Dùng Docker Compose để chia layer: LiteLLM, Postgres/Redis cho logging, các service khác.
- Deploy lên Kubernetes và dùng Ingress để expose gateway cho nhiều microservice.
Admin UI, budget, rate limit và logging
LiteLLM đi kèm một Admin UI và các tính năng quản trị:
- Admin UI: giao diện web để xem model, log, thêm/sửa model mà không cần chỉnh file config.
- API keys/virtual keys: tạo key riêng cho từng app/user/team; mỗi key có thể gắn quota, budget, rate limit.
- Spend tracking: track chi phí theo model, theo key, theo thời gian.
- Logging + observability: đẩy log ra các hệ thống như Prometheus, OpenTelemetry, hoặc dùng tích hợp logging sẵn có.
Ví dụ bật UI:
litellm --config /path/to/config.yaml
# Proxy: http://0.0.0.0:4000
# UI: http://0.0.0.0:4000/uiĐừng quên set LITELLM_MASTER_KEY, UI_USERNAME, UI_PASSWORD để bảo vệ UI và API.
Tích hợp LiteLLM với ứng dụng và workflow thực tế
Với background dev/webmaster, bạn có thể tận dụng LiteLLM theo nhiều hướng:
- Một gateway cho toàn bộ site/app: đổi endpoint OpenAI trong backend, n8n workflow, cron, script Python, Node… sang LiteLLM là xong, không cần đổi business logic.
- Routing theo use case: nội dung SEO/blog dùng model rẻ, code generation hoặc agent phức tạp dùng model mạnh hơn, tất cả đằng sau một API duy nhất.
- Kết nối với hệ thống agent: dùng LiteLLM cho mọi call LLM trong agent framework (kagent, LangGraph, custom agent) để linh hoạt swap provider, giảm chi phí, thêm fallback khi provider lỗi.
- Multi-tenant SaaS: tạo virtual keys cho từng khách hàng, set budget và rate limit riêng, theo dõi usage dễ dàng mà không cần viết gateway riêng.
Một số lưu ý bảo mật khi self‑hosted
Vì LiteLLM là gateway trung tâm cho mọi traffic LLM, bạn nên:
- Chạy proxy phía sau HTTPS, giới hạn IP hoặc dùng authentication bắt buộc (master key, virtual key).
- Không commit file
.env/config.yamlchứa key lên Git, dùng secret manager hoặc CI/CD secret. - Theo dõi security advisory của LiteLLM, thường xuyên cập nhật bản vá; gateway bị compromise có thể lộ token, log, payload của người dùng.
- Đặt quota và rate limit hợp lý để tránh abuse hoặc bug trong app phía client khiến chi phí tăng đột biến.
LiteLLM cho bạn một lớp “LLM abstraction” rất hợp lý: vừa đơn giản để bắt đầu, vừa đủ mạnh để scale lên nhiều website, service, agent và khách hàng khác nhau.
Với việc chỉ cần đổi base URL hoặc import khác trong code, bạn đã có thể tách ứng dụng ra khỏi sự phụ thuộc vào một nhà cung cấp duy nhất, tối ưu chi phí và chuẩn bị tốt hơn cho một hệ sinh thái LLM ngày càng phân mảnh.








