Trong bài viết trước, mình đã giới thiệu về Quotio - chiếc app quản lý quota thần thánh trên macOS. Hôm nay, chúng ta sẽ đi sâu vào tính năng "đáng tiền" nhất của nó: Smart Failover.

Mục tiêu của bài hướng dẫn này rất đơn giản: Ưu tiên dùng Claude 3.7 (vì code ngon nhất). Nhưng nếu hết tiền hoặc lỗi mạng -> Tự động chuyển sang Gemini 1.5 Pro (ngon, bổ, rẻ/free) ngay lập tức.

Không ngắt quãng. Không báo lỗi. Chỉ có code chạy.

Bước 1: Tư duy "Router" trong Quotio

Trước khi đụng vào file config, bạn cần hiểu Quotio hoạt động như một Local Proxy Server. Thay vì các tool (như Claude Code, Cursor, VS Code) gọi thẳng lên server của Anthropic, chúng sẽ gọi vào máy bạn (Localhost).

Quotio sẽ đứng giữa và hỏi: "Thằng Claude còn sống không? Không à? Ok, qua thằng Gemini."

Để làm điều này, chúng ta sẽ tạo một Virtual Model ID (Mã model ảo). Hãy đặt tên nó là: super-coder.

Bước 2: Thiết lập Chain trên Quotio (Giao diện App)

Mở Quotio trên thanh Menu Bar -> Chọn Settings -> Routers.

Tại đây, bạn tạo một Rule mới với cấu hình như sau:

  1. Name: Super Coder
  2. Virtual ID: model-routing-01
  3. Strategy: Chọn "Fallback" (Đây là mấu chốt. Nó sẽ thử cái đầu tiên, nếu lỗi sẽ qua cái thứ 2).
  4. Targets (Thứ tự quan trọng):
    • Priority 1: anthropic/claude-3-7-sonnet (Primary)
    • Priority 2: google/gemini-2.0-pro (Backup)

Lưu lại. Lúc này, Quotio sẽ lắng nghe tại cổng mặc định, ví dụ: http://127.0.0.1:3000.

Bước 3: Cấu hình Client (Ví dụ với Claude Code)

Bây giờ là lúc lừa... à nhầm, "hướng dẫn" công cụ CLI của bạn trỏ vào Quotio.

Nếu bạn đang dùng tool terminal, thường sẽ có một file .config hoặc biến môi trường. Dưới đây là cách setup chuẩn cho các tool phổ biến:

Trường hợp 1: Dùng biến môi trường (Environment Variables)

Đây là cách nhanh nhất, áp dụng cho phiên làm việc hiện tại.

Bash

# Trỏ Base URL về máy của bạn (Quotio đang chạy ở port 3000)
export OPENAI_BASE_URL="http://127.0.0.1:3000/v1" 

# Quan trọng: Key này có thể là key ảo do Quotio cấp, hoặc để bừa cũng được (vì Quotio quản lý key thật rồi)
export OPENAI_API_KEY="sk-quotio-dummy-key"

# Quan trọng nhất: Gọi đúng cái Virtual ID mình vừa tạo ở Bước 2
export MODEL_NAME="model-routing-01"

Trường hợp 2: Config file cho Tool (Ví dụ giả định)

Nếu bạn dùng các tool như aicoder hay các script tự viết, hãy tạo file config.toml hoặc .env tại thư mục dự án:

Ini, TOML

[llm]
# Thay vì gọi đến api.anthropic.com, ta gọi localhost
base_url = "http://127.0.0.1:3000/v1"
api_key = "sk-quotio-local"

# Model không phải là 'claude-3-5' nữa, mà là cái tên ảo ta đã đặt
model = "model-routing-01" 

Bước 4: Test thử "Cắt mạng"

Để chắc chắn hệ thống hoạt động, hãy thử một bài test nhỏ:

  1. Mở Quotio, vào phần quản lý Key của Claude, tạm thời Disable (Tắt) nó đi (giả lập tình huống hết quota hoặc lỗi server).
  2. Mở Terminal, chạy lệnh code bình thường.
  3. Kết quả mong đợi: Quotio sẽ hiện thông báo nhỏ: "Claude failed. Rerouting to Gemini...". Terminal của bạn vẫn chạy mượt mà, kết quả trả về vẫn chuẩn xác (dù văn phong có thể khác một chút do đổi model).

Lời khuyên cuối cùng

  • Đừng quên Temperature: Khi switch giữa các hãng AI (Claude vs Google), tham số temperature có thể hoạt động khác nhau. Mức an toàn nhất cho coding là 0.0 đến 0.2. Quotio thường sẽ tự động chuẩn hóa (normalize) tham số này giúp bạn.
  • Gemini Flash cho tốc độ: Nếu bạn cần tốc độ hơn là chất lượng khi fallback, hãy chọn gemini-2.0-flash làm phương án dự phòng. Nó nhanh khủng khiếp và rẻ gần như miễn phí.

Hy vọng với setup này, anh em sẽ không bao giờ bị tụt mood vì cái lỗi 429 đáng ghét kia nữa. Code xuyên màn đêm nhé!