Chuyển đến nội dung chính
OrcaRouter cho phép bạn lưu một chiến lược định tuyến dưới dạng bộ định tuyến có tên. Gọi nó từ mã của bạn dưới dạng orcarouter/{name} và OrcaRouter sẽ giải nó thành một mô hình cụ thể tại thời điểm yêu cầu, dựa trên các quy tắc bạn đã cấu hình. Cách này hữu ích khi bạn muốn:
  • Thay đổi hành vi định tuyến mà không cần triển khai lại ứng dụng (thay đổi router trong bảng điều khiển; mã của bạn không đổi).
  • Cho các nhóm hoặc dịch vụ khác nhau chọn chính sách định tuyến riêng của họ, độc lập với ứng dụng đang gọi API.
  • Tham chiếu logic định tuyến quá phức tạp để nhúng inline trong extra_body.

Sử dụng một router

response = client.chat.completions.create(
    model="orcarouter/production-chat",
    messages=[...],
)
Để biết router đã giải thành mô hình cụ thể nào, đọc các header phản hồi X-Orca-RouterX-Orca-Resolved-Model — xem Header phản hồi. Trường model trong thân phản hồi phản ánh bất kỳ thứ gì upstream trả về (thường là tên upstream trần, ví dụ gpt-4o-mini-2024-07-18).

Tạo một router

Các router được tạo trong bảng điều khiển dưới mục Routing. Mỗi router có:
  • Tên{name} trong orcarouter/{name}. Phải duy nhất trong workspace của bạn; chữ thường, chữ số, _, và - (1-50 ký tự). Tên orcarouter được dành riêng.
  • Mô hình được phép — một hoặc nhiều mẫu glob (ngăn cách bằng dấu phẩy hoặc xuống dòng, không phân biệt chữ hoa thường) giới hạn các mô hình mà router này có thể chọn. Ví dụ: openai/* hoặc openai/*, anthropic/claude-haiku-*. Để trống sẽ khớp mọi mô hình mà tài khoản của bạn có quyền truy cập.
  • Chiến lược — cách chọn giữa các mô hình khớp. Xem Chiến lược bên dưới.
  • Mundane models / Hard models — danh sách mô hình bổ sung chỉ được dùng bởi chiến lược Adaptive · Gated. Xem Adaptive bên dưới.
  • Mô hình mặc định — một mô hình an toàn được dùng nếu mẫu không giải được thành gì.
  • Bật — vô hiệu hóa router mà không xóa nó.

Chiến lược

Trình biên tập đưa ra bốn thẻ chiến lược. Adaptive gói hai chế độ con phía backend, tổng cộng năm giá trị enum bạn có thể lưu qua API.

Cheapest

Chọn mô hình có giá theo token thấp nhất trong số các ứng viên đang hoạt động. Mặc định cho router được seed orcarouter/auto. Tốt nhất khi bạn muốn mô hình chat đang hoạt động rẻ nhất cho mọi yêu cầu và không quan tâm tính nhất quán phong cách đầu ra giữa các lệnh gọi.

Quality

Chọn mô hình có điểm chất lượng cao nhất trong số các ứng viên đang hoạt động, bất kể giá. Tốt nhất khi chất lượng đầu ra quan trọng hơn chi phí.

Balanced

Chọn một tùy chọn chi phí thấp vẫn đạt một ngưỡng chất lượng; nếu không có gì đạt ngưỡng, dự phòng sang tùy chọn chất lượng cao nhất. Mặc định cho các router mới bạn tự tạo. Chạy mà không cần tinh chỉnh theo router.

Adaptive

Một LinUCB contextual bandit theo từng router học từ lưu lượng production thực của bạn. Cân nhắc chất lượng, chi phí, độ trễ và độ tin cậy cho từng yêu cầu để chọn mô hình tốt nhất. Các router mới hoạt động giống Balanced trong một giai đoạn khởi động lạnh ngắn (một quá trình làm nóng theo mô hình) trước khi bandit bắt đầu định hướng các lựa chọn — đó là điều bình thường, không phải lỗi. Hai chế độ con:
  • Standard (API enum: linucb) — xem xét mọi mô hình thuộc danh sách Được phép cho từng yêu cầu. Tốt nhất khi lưu lượng tương đối đồng đều và bạn muốn router tìm tùy chọn tốt nhất trên toàn danh sách của bạn.
  • Gated (API enum: gated_adaptive) — các yêu cầu được phân loại thành mundane hoặc hard; các yêu cầu mundane được chọn từ một pool Mundane models nhỏ hơn, các yêu cầu hard từ pool Hard models mạnh hơn, và các yêu cầu mức trung từ toàn bộ danh sách Được phép. Tốt nhất khi lưu lượng của bạn pha trộn các lệnh gọi đơn giản và phức tạp. Mỗi pool được giao với Allowed models; pool trống hoặc không chồng lấp sẽ âm thầm dự phòng về toàn bộ danh sách Được phép, nên các yêu cầu không bao giờ bị thiếu mô hình. Cấu hình hai pool (weak_poolstrong_pool ở cấp API — tối đa 2000 ký tự mỗi pool) trong trình biên tập khi bạn chọn Gated.

Router được seed: orcarouter/auto

Mọi tài khoản OrcaRouter đều được seed sẵn một router mặc định tên auto khi đăng ký — xem Bộ định tuyến tự động. Bạn có thể dùng nó ngay lập tức mà không cần cấu hình gì.