Посібники
Канали та маршрутизація постачальників
Закріпіть модель за конкретним постачальником заголовком X-Felo-Channel і розберіться з типовою маршрутизацією, цінами та правилами fallback.
Модель може обслуговуватися кількома вищими постачальниками. За замовчуванням Felo вибирає постачальника за вас. Коли вам потрібен конкретний постачальник, надішліть заголовок запиту X-Felo-Channel з одним або кількома кодами публічних каналів.
Підтримувані endpoint
X-Felo-Channel приймається на кожному endpoint генерації Model API:
| Endpoint | Протокол |
|---|---|
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 | Генерація зображень |
POST /api/v1/videos/generations | Генерація відео |
POST /api/v1/decisions | Рішення |
Він не застосовується до Data API (/v1/beta) або Felo APIs (/v2).
Значення заголовка
Значення — це впорядкований список кодів публічних каналів, розділених комами:
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: defaultПравила з публічної специфікації Model API:
- Опустіть заголовок, щоб використати типовий маршрут.
defaultє допустимим значенням, лише коли використовується окремо. Не поєднуйте його з кодами каналів.- Коди публічних каналів походять із поля
channels[].codeмоделі в каталозі. Використовуйте код, а не відображувану назву постачальника. - Маршрутизувати можна лише запущені опубліковані канали.
Типова маршрутизація
Коли ви опускаєте заголовок або надсилаєте default окремо, постачальника вибирає платформа. У режимі гаманця вона переглядає чинний порядок публічних каналів моделі у зворотному напрямку, пропускає неопубліковані або недоступні канали та вибирає постачальника першого доступного каналу. Вона може включити доступні endpoint цього постачальника з тим самим ID вищої моделі та рівнем обслуговування.
Вам не потрібно надсилати X-Felo-Channel: default; пропуск заголовка — звичайний спосіб використання типового маршруту.
Явна маршрутизація
Коли ви надсилаєте коди каналів, вони перевіряються в тому порядку, у якому ви їх перелічили. Надсилається лише група постачальників першого каналу. Автоматичного резервного перемикання на іншого постачальника немає.
Це означає, що список каналів — це вибір, а не політика повторних спроб. Якщо вам потрібне резервне перемикання, реалізуйте його у своєму застосунку: надішліть новий запит з іншим каналом після збою першого.
Застарілі заголовки постачальника не можуть перевизначити X-Felo-Channel. Якщо інший заголовок у вашому клієнті також вимагає постачальника, перевага надається X-Felo-Channel.
Ціни
Кожен публічний канал публікує власні стандартні тарифи та множник знижки. Ціна, показана для постачальника на сторінці моделі, — це ціна цього каналу для клієнта. Прив'язаний канал визначає постачальника, чий тариф застосовується.
Перш ніж прив'язувати канал для навантаження з великим обсягом, порівняйте рядки постачальників на сторінці моделі і прочитайте Моделі та ціни.
Як знайти код каналу
- Відкрийте сторінку моделі та знайдіть таблицю постачальників.
- Зіставте постачальника з його кодом публічного каналу. Код — це стабільний ідентифікатор, який використовує API.
- Якщо ви читаєте каталог напряму, використовуйте
channels[].codeі перевіртеrunnable.
Наприклад, claude-haiku-5-5 публікує кілька каналів, зокрема anthropic (типовий), azure, google-vertex-global і claude-cc. Рядок claude-cc показує власну знижку, тому його прив'язка змінює і постачальника, і тариф.
Приклади
Chat Completions, прив'язаний до одного каналу:
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 із тим самим каналом:
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."}]
}'Типова маршрутизація без заголовка маршрутизації:
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."}]
}'