Tại sao bạn cần một Gateway khi làm việc với LLM?
Hãy tưởng tượng bạn vừa code xong ứng dụng chạy GPT-4. Đột nhiên, khách hàng yêu cầu đổi sang Claude 3.5 Sonnet vì nó xử lý tiếng Việt tự nhiên hơn và rẻ hơn 5 lần. Hoặc sếp muốn tích hợp thêm Gemini để dự phòng. Lúc này, bạn sẽ phải loay hoay cài thêm SDK mới, sửa lại toàn bộ format request và xử lý lỗi riêng biệt cho từng nhà cung cấp.
Đây là sai lầm phổ biến khiến dự án AI trở nên khó bảo trì. Thay vì “hard-code” từng API, các hệ thống lớn thường dùng một Proxy Gateway ở giữa. LiteLLM chính là giải pháp đó.
LiteLLM đóng vai trò như một bộ chuyển đổi thông minh. Phía trước, nó nhận request theo chuẩn OpenAI. Phía sau, nó tự động dịch sang ngôn ngữ của Anthropic, Gemini hay các model chạy local qua Ollama. Bạn chỉ cần gọi đến một địa chỉ duy nhất, mọi việc điều phối model đã có LiteLLM lo.
Những lợi ích thực tế khi triển khai LiteLLM:
- Đồng nhất chuẩn API: Gọi Claude hay Llama 3 mượt mà như đang gọi GPT-4.
- Quản lý Key tập trung: Không cần rải API Key ở khắp nơi, giảm rủi ro lộ key.
- Failover tự động: Nếu OpenAI báo lỗi 429 (Rate Limit), hệ thống tự chuyển sang Gemini trong 0.5 giây.
- Tối ưu chi phí: Theo dõi chính xác model nào đang ngốn tiền nhất thông qua dashboard trực quan.
Cài đặt LiteLLM trong 1 phút
Để bắt đầu, bạn cần Python 3.8 trở lên. Mình khuyến khích sử dụng môi trường ảo để giữ hệ thống sạch sẽ.
# Tạo và kích hoạt môi trường ảo
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Cài đặt phiên bản có hỗ trợ Proxy
pip install 'litellm[proxy]'
Sau khi cài xong, hãy gõ litellm --version để đảm bảo mọi thứ đã sẵn sàng.
Cấu hình Proxy Gateway chuyên nghiệp
Mọi thiết lập quan trọng của LiteLLM đều nằm trong file config.yaml. Cách làm này giúp bạn quản lý hàng chục model dễ dàng hơn nhiều so với việc gõ lệnh thủ công.
Dưới đây là file cấu hình mẫu giúp bạn gom 3 nhà cung cấp lớn về một mối:
model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: "sk-xxx"
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-3-5-sonnet-20240620
api_key: "sk-ant-xxx"
- model_name: gemini-pro
litellm_params:
model: gemini/gemini-1.5-pro
api_key: "AIza-xxx"
router_settings:
routing_strategy: latency-based-routing # Tự động chọn model có phản hồi nhanh nhất
Trong cấu hình trên, model_name là định danh bạn sẽ gọi từ code ứng dụng. Bạn có thể đặt tên bất kỳ như “chatbot-uu-tien” hay “model-gia-re”.
Lưu ý bảo mật: Đừng bao giờ dán trực tiếp key vào file YAML khi deploy. Hãy dùng biến môi trường như api_key: "os.environ/OPENAI_API_KEY".
Khởi chạy và Kiểm tra kết quả
Kích hoạt Proxy bằng lệnh:
litellm --config config.yaml
Mặc định, server sẽ chạy tại http://0.0.0.0:4000. Bây giờ, toàn bộ sức mạnh của các ông lớn AI đã nằm gọn trong một cổng kết nối duy nhất.
Test nhanh bằng cURL
Hãy thử gọi Claude 3.5 nhưng lại dùng format của OpenAI:
curl --request POST \
--url http://localhost:4000/v1/chat/completions \
--header 'Content-Type: application/json' \
--data '{
"model": "claude-sonnet",
"messages": [{ "role": "user", "content": "Chào bạn!" }]
}'
Sử dụng với Python SDK
Đây là phần mình đánh giá cao nhất. Bạn không cần cài SDK riêng của Anthropic hay Google. Cứ dùng thư viện openai quen thuộc:
from openai import OpenAI
client = OpenAI(api_key="any-string", base_url="http://localhost:4000")
# Gọi Gemini nhưng dùng chuẩn OpenAI
response = client.chat.completions.create(
model="gemini-pro",
messages=[{"role": "user", "content": "Quantum computing là gì?"}]
)
print(response.choices[0].message.content)
Kiểm soát chi phí và Monitoring
Một trong những nỗi lo lớn nhất khi làm AI là hóa đơn API tăng đột biến. Mình từng gặp trường hợp một vòng lặp vô tận trong code khiến tài khoản bốc hơi $500 chỉ sau một đêm.
LiteLLM giải quyết vấn đề này bằng Dashboard tích hợp. Nếu cấu hình thêm Postgres, bạn có thể truy cập http://localhost:4000/ui để quản lý:
- Virtual Keys: Cấp key riêng cho từng phòng ban hoặc từng dev.
- Spending Limits: Giới hạn mỗi key chỉ được dùng tối đa $10/ngày.
- Latency Tracking: Theo dõi xem model nào đang bị chậm (ví dụ: 5s vs 1.2s) để điều hướng request.
Việc áp dụng Proxy Gateway không chỉ giúp code sạch hơn mà còn mang lại sự linh hoạt tuyệt đối. Bạn không còn bị phụ thuộc vào bất kỳ nhà cung cấp nào. Nếu hôm nay OpenAI tăng giá, bạn chỉ cần đổi một dòng config để chuyển toàn bộ traffic sang một model rẻ hơn.
