Przewodniki
Kanały i routing dostawców
Przypnij model do konkretnego dostawcy nagłówkiem X-Felo-Channel i poznaj domyślny routing, ceny i reguły fallbacku.
Model może być obsługiwany przez kilku dostawców upstream. Domyślnie Felo wybiera dostawcę za Ciebie. Gdy potrzebujesz konkretnego dostawcy, wyślij nagłówek żądania X-Felo-Channel z jednym lub kilkoma publicznymi kodami kanałów.
Obsługiwane endpointy
X-Felo-Channel jest akceptowany na każdym endpointcie generowania Model API:
| Endpoint | Protokół |
|---|---|
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 | Generowanie obrazów |
POST /api/v1/videos/generations | Generowanie wideo |
POST /api/v1/decisions | Decyzje |
Nie dotyczy Data API (/v1/beta) ani Felo APIs (/v2).
Wartości nagłówka
Wartość to uporządkowana, rozdzielona przecinkami lista publicznych kodów kanałów:
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: defaultZasady z publicznej specyfikacji Model API:
- Pomiń nagłówek, aby użyć trasy domyślnej.
defaultjest prawidłową wartością tylko wtedy, gdy występuje samodzielnie. Nie łącz go z kodami kanałów.- Publiczne kody kanałów pochodzą z pola
channels[].codemodelu w katalogu. Używaj kodu, a nie nazwy wyświetlanej dostawcy. - Trasowalne są tylko uruchamialne, opublikowane kanały.
Routing domyślny
Gdy pominiesz nagłówek lub wyślesz samodzielnie default, platforma wybiera dostawcę. W trybie portfela skanuje efektywną publiczną kolejność kanałów modelu w odwrotnej kolejności, pomija kanały nieopublikowane lub niedostępne i wybiera dostawcę pierwszego dostępnego kanału. Może uwzględnić dostępne endpointy tego dostawcy z tym samym identyfikatorem modelu upstream i poziomem usługi.
Nie musisz wysyłać X-Felo-Channel: default; pominięcie nagłówka to normalny sposób korzystania z trasy domyślnej.
Routing jawny
Gdy wysyłasz kody kanałów, są one walidowane w podanej kolejności. Przesyłana jest tylko grupa dostawcy pierwszego kanału. Nie ma automatycznego przełączania awaryjnego na innego dostawcę.
Oznacza to, że lista kanałów to wybór, a nie zasada ponawiania. Jeśli potrzebujesz przełączania awaryjnego, zaimplementuj je w aplikacji: wyślij nowe żądanie z innym kanałem, gdy pierwszy zawiedzie.
Starsze nagłówki dostawców nie mogą nadpisać X-Felo-Channel. Jeśli inny nagłówek w kliencie również prosi o dostawcę, X-Felo-Channel ma pierwszeństwo.
Ceny
Każdy publiczny kanał publikuje własne standardowe stawki i mnożnik rabatu. Cena wyświetlana dla dostawcy na stronie szczegółów modelu to cena klienta tego kanału. Przypięty kanał określa dostawcę, którego stawka obowiązuje.
Przed przypięciem kanału dla obciążenia o dużym wolumenie porównaj wiersze dostawców na stronie modelu i przeczytaj Modele i ceny.
Znajdowanie kodu kanału
- Otwórz stronę szczegółów modelu i znajdź tabelę dostawców.
- Dopasuj dostawcę do jego publicznego kodu kanału. Kod to stabilny identyfikator używany przez API.
- Jeśli czytasz katalog bezpośrednio, użyj
channels[].codei sprawdźrunnable.
Na przykład claude-haiku-5-5 publikuje kilka kanałów, w tym anthropic (domyślny), azure, google-vertex-global i claude-cc. Wiersz claude-cc pokazuje własny rabat, więc przypięcie go zmienia zarówno dostawcę, jak i stawkę.
Przykłady
Chat Completions przypięty do jednego kanału:
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 z tym samym kanałem:
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."}]
}'Routing domyślny, bez nagłówka routingu:
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."}]
}'