Bị giới hạn tốc độ hay bị chặn? Kế hoạch failover đa mô hình

## Rủi ro của một nhà cung cấp duy nhất
Nếu toàn bộ sản phẩm của bạn phụ thuộc vào một endpoint mô hình duy nhất, thì một lần giới hạn tốc độ, một sự cố hay một lần chặn theo khu vực sẽ kéo ứng dụng của bạn sập theo. Cách khắc phục không hề anh hùng — đó là một danh sách dự phòng.
## Mẫu thiết kế: dự phòng có thứ tự
Thử mô hình chính trước; khi gặp giới hạn tốc độ hoặc lỗi, chuyển sang mô hình tiếp theo. Vì ClaudeN AI cung cấp Claude, GPT và Gemini qua một khóa, failover chỉ là một danh sách tên mô hình.
``python``
from openai import OpenAI
client = OpenAI(api_key="YOUR_CLAUDEN_KEY", base_url="https://clauden.ai/v1")
FALLBACKS = ["claude-3-5-sonnet", "gpt-4o", "gemini-1.5-pro"]
def ask(prompt: str) -> str:
last_err = None
for model in FALLBACKS:
try:
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
)
return r.choices[0].message.content
except Exception as e:
last_err = e
continue
raise RuntimeError(f"All models failed: {last_err}")
print(ask("Tóm tắt định lý CAP trong hai câu."))
## Những mẹo giúp failover đáng tin cậy
- Sắp xếp theo năng lực, rồi đến chi phí: mô hình tốt nhất đứng đầu, dự phòng rẻ nhất đứng cuối.
- Thêm một timeout ngắn để một nhà cung cấp chậm không chặn cả chuỗi.
- Ghi log mô hình nào thực sự phục vụ mỗi yêu cầu để bạn có thể tinh chỉnh thứ tự.
## Vì sao relay hữu ích
Làm điều này với ba nhà cung cấp riêng biệt nghĩa là ba khóa, ba SDK và ba hệ thống thanh toán. Qua một gateway, nó chỉ là một danh sách và một số dư duy nhất — khả năng phục hồi mà không phải trả thuế vận hành.