Hướng dẫn
Kênh và định tuyến nhà cung cấp
Ghim một mô hình vào nhà cung cấp cụ thể bằng X-Felo-Channel, đồng thời hiểu định tuyến mặc định, cách tính giá và dự phòng.
Một mô hình có thể được phục vụ qua nhiều nhà cung cấp thượng nguồn. Theo mặc định, Felo chọn nhà cung cấp cho bạn. Khi cần một nhà cung cấp cụ thể, hãy gửi header yêu cầu X-Felo-Channel với một hoặc nhiều mã kênh công khai.
Các endpoint được hỗ trợ
X-Felo-Channel được chấp nhận trên mọi endpoint tạo sinh của Model API:
| Endpoint | Giao thức |
|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions |
POST /api/v1/responses | OpenAI Responses |
POST /api/v1/messages | Anthropic Messages |
POST /api/v1/images/generations | Tạo hình ảnh |
POST /api/v1/videos/generations | Tạo video |
POST /api/v1/decisions | Quyết định |
Nó không áp dụng cho Data API (/v1/beta) hay các Felo API (/v2).
Giá trị header
Giá trị là một danh sách mã kênh công khai có thứ tự, phân tách bằng dấu phẩy:
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: defaultCác quy tắc từ đặc tả công khai của Model API:
- Bỏ header để dùng tuyến mặc định.
defaultchỉ hợp lệ khi dùng một mình. Không kết hợp nó với các mã kênh.- Mã kênh công khai lấy từ trường
channels[].codecủa mô hình trong danh mục. Dùng mã, không dùng tên hiển thị của nhà cung cấp. - Chỉ các kênh đang chạy được và đã công bố mới có thể định tuyến.
Định tuyến mặc định
Khi bạn bỏ header, hoặc chỉ gửi default, nền tảng sẽ chọn nhà cung cấp. Ở chế độ ví, nó quét ngược thứ tự kênh công khai hiệu lực của mô hình, bỏ qua các kênh chưa công bố hoặc không khả dụng, và chọn nhà cung cấp của kênh khả dụng đầu tiên. Nó có thể bao gồm các endpoint khả dụng từ nhà cung cấp đó với cùng model ID thượng nguồn và cùng bậc dịch vụ.
Bạn không cần gửi X-Felo-Channel: default; bỏ header là cách thông thường để dùng tuyến mặc định.
Định tuyến tường minh
Khi bạn gửi các mã kênh, chúng được xác thực theo thứ tự bạn liệt kê. Chỉ nhóm nhà cung cấp của kênh đầu tiên được gửi đi. Không có tự động chuyển sang nhà cung cấp khác.
Điều đó có nghĩa danh sách kênh là một lựa chọn, không phải chính sách thử lại. Nếu bạn cần chuyển đổi dự phòng, hãy triển khai trong ứng dụng của bạn: gửi một yêu cầu mới với kênh khác sau khi kênh đầu tiên thất bại.
Các header nhà cung cấp cũ không thể ghi đè X-Felo-Channel. Nếu một header khác trong máy khách của bạn cũng yêu cầu một nhà cung cấp, X-Felo-Channel sẽ được ưu tiên.
Giá
Mỗi kênh công khai công bố mức giá tiêu chuẩn và hệ số giảm giá riêng. Giá hiển thị cho một nhà cung cấp trên trang chi tiết mô hình chính là giá khách hàng của kênh đó. Kênh bạn ghim quyết định nhà cung cấp mà mức giá của họ được áp dụng.
Trước khi ghim một kênh cho khối lượng công việc lớn, hãy so sánh các dòng nhà cung cấp trên trang mô hình và đọc Mô hình và giá.
Tìm mã kênh
- Mở trang chi tiết mô hình và tìm bảng nhà cung cấp.
- Đối chiếu nhà cung cấp với mã kênh công khai của nó. Mã là định danh ổn định được API dùng.
- Nếu bạn đọc trực tiếp danh mục, hãy dùng
channels[].codevà kiểm trarunnable.
Ví dụ: claude-haiku-5-5 công bố một số kênh, bao gồm anthropic (mặc định), azure, google-vertex-global và claude-cc. Dòng claude-cc hiển thị mức giảm giá riêng, nên ghim nó sẽ thay đổi cả nhà cung cấp lẫn mức giá.
Ví dụ
Chat Completions ghim vào một kênh:
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'Anthropic Messages với cùng kênh:
curl https://openapi.felo.ai/api/v1/messages \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'Định tuyến mặc định, không có header định tuyến:
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'