LLM-шлюз
LLM-шлюз зі вбудованим шаром даних
Три базові URL, один ключ, один баланс. Чат, зображення, відео й вирішальні моделі — на вашому поточному SDK; пошук, документи й слайди — з того самого балансу, від десятої частини офіційної ціни постачальника.
10%
Стартова ставка щодо офіційної ціни API постачальника
5,000+
API у тому самому каталозі
У шлюзу зазвичай одна поверхня. Тут їх три.
У них спільний акаунт, ключ і баланс, але вони відповідають на різні питання й живуть за різними базовими URL. Зрозуміти, яку саме ви викликаєте, — це і є вся суть.
| Поверхня | Базовий URL | Для чого |
|---|---|---|
| Модельний API | openapi.felo.ai/api/v1 · openapi.felo.ai/api | Прямий виклик мовної, графічної, відео- або вирішальної моделі |
| API даних | openapi.felo.ai/v1/beta | Виклик указаного стороннього постачальника даних або пошуку |
| Felo APIs | openapi.felo.ai/v2 | Власні процеси Felo: пошук, офіс, вилучення, знання |
Один ключ покриває всі три. Поповнення купує сервісні кредити в доларах США, і виклик моделі, виклик API даних та процес Felo списуються з одного й того самого — окремий акаунт на кожного постачальника не потрібен.
Читати документаціюШість ендпоінтів, а не один
Усе під /api/v1 — це виклик моделі, але вид моделі визначає, який ендпоінт може відповісти; і кожен ендпоінт повертає свій формат.
| Ендпоінт | Протокол | Повертає |
|---|---|---|
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 | Конверт зображень OpenAI | task_id для опитування |
POST /api/v1/videos/generations | Конверт відео OpenAI | task_id для опитування |
POST /api/v1/decisions | Схема рішень Felo | Типізовані відповіді, без потоку |
Три чат-поверхні — нативні реалізації, а не шар трансляції: кожна віддає події у своєму протоколі, тож потік розбирається так само, як зараз.
Ендпоінт обирають за видом моделі, а не навмання
Кожна модель у каталозі має model_kind, і вид визначає, який ендпоінт може її викликати. Виявлення безкоштовне: читається локальний каталог.
# discover before you call — free, reads the catalog
GET /api/v1/models # every kind, with channels and rates
GET /api/v1/models/{model_id} # one model, in detail
GET /api/v1/videos/models # video_generation only
GET /api/v1/decisions/models # decisions only| model_kind | Ендпоінт |
|---|---|
chat | Responses, Chat Completions або Messages — що підтримує модель |
image_generation | POST /api/v1/images/generations |
video_generation | POST /api/v1/videos/generations |
decisions | POST /api/v1/decisions |
Фільтр ?provider= лишає одного постачальника, ?exclude_video_and_decisions=true — тільки чат і зображення. Наявність у каталозі не обіцянка: відеомодель не відповість на чат-запит, а API поверне model_kind_mismatch.
Маршрут за замовчуванням або один заголовок для вибору постачальника
Одну модель можуть віддавати кілька вищих каналів, у кожного свій постачальник і опублікована ставка. Без заголовка платформа обере канал сама; з X-Felo-Channel обираєте ви.
# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic # ordered selection, not a retry list- Значення — упорядкований список публічних кодів каналів з
channels[].codeмоделі, що перевіряється в тому порядку, у якому ви його записали. - Надсилається лише група постачальника першого каналу, і платите ви за ставкою цього каналу.
- Автоматичного перемикання немає. Список каналів — це вибір, а не політика повторів: якщо постачальник відмовив, повторіть зі свого застосунку з іншим каналом.
X-Felo-Channel працює на всіх шести ендпоінтах генерації вище. На API даних і Felo APIs він не діє: там запит іде до постачальника, вказаного в самому запиті.
Скільки насправді коштує виклик
Виклик моделі тарифікується за токенами — вхід, вихід, кеш — із множником знижки каналу. Ставки публікуються за 1 млн токенів для читабельності, але тарифікація йде з точністю до токена за поточним знімком цін, тож короткий запит не округлюється до мільйона.
- Ставки кешу застосовуються лише коли відповідь протоколу повідомляє про використання кешу; модель без такої звітності тарифікується повністю за вхідною ставкою.
- Вебпошук, який модельний сервіс справді виконав і відзвітував, коштує $0.01 за пошук.
- Деякі моделі тарифікуються ступенями за розміром промпту: Claude Haiku 5.5 коштує $0.10 на вході й $0.50 на виході за 1 млн токенів до промпту в 100K токенів, а вище — $0.50 і $2.50 за весь запит.
- Перше поповнення — від $1. Ні підписки, ні плати за робоче місце, ні мінімальних зобовʼязань: ключ, що простоює, нічого не коштує.
Виклики API даних і процеси Felo списуються з того самого балансу, кожен за своєю опублікованою базою: за успішний запит, за повернутий елемент або за фактичні витрати.
Ставки та кредитиДва обмеження, схожі зовні й цілком різні
Скінчилися кредити — 402 INSUFFICIENT_CREDITS. Занадто часті виклики — 429 RATE_LIMITED. Очікування знімає друге і ніколи не знімає перше.
| Статус | Код | Що робити |
|---|---|---|
| 401 | UNAUTHORIZED | Виправити або перевипустити ключ |
| 402 | INSUFFICIENT_CREDITS | Поповнити в розділі оплати консолі й повторити |
| 404 | залежить від ендпоінта | Перевірити ID моделі, задачі або маршруту |
| 429 | RATE_LIMITED | Дочекатися Retry-After і повторити |
| 5xx | CHAT_FAILED, SERVICE_UNAVAILABLE | Повторити з експоненційною затримкою та джиттером |
Сьогодні документовані жорсткі ліміти є лише в /v2/chat. Виклики моделей теж можуть обмежуватися на боці апстріму, і це проявляється як 429 — читайте X-RateLimit-* і Retry-After, а не вшивайте числа. У кожній відповіді є request_id, а надісланий вами X-Request-Id повертається назад, тож логи збігаються.
Зображення й відео добудовуються у фоні
Обидва ендпоінти генерації повертають task_id замість результату. Надіслати, опитати, забрати — і врахуйте: після створення задачі більшість відмов приходить як 200 із термінальним статусом, а не як HTTP-помилка.
# submit, then poll the task
POST /api/v1/images/generations → task_id
GET /api/v1/images/generations/{id} → status, result
POST /api/v1/videos/generations → task_id
GET /api/v1/videos/generations/{id} → status, resultСпершу статус, потім результат: failed і interrupted — теж відповіді, причина в error.message. Якщо 402 прийшов під час надсилання, задача не створювалася. SuperAgent працює інакше — віддає stream_key і надсилає події через SSE, опитувати нічого.
Змініть базовий URL — клієнт лишається
Обом SDK достатньо вказати цей базовий URL, код змінювати не потрібно. npx feloapi-cli setup запише ту саму конфігурацію для Claude Code і Codex.
# OpenAI SDK
base_url = "https://openapi.felo.ai/api/v1"
# Anthropic SDK — one level up; the SDK appends /v1/messages
base_url = "https://openapi.felo.ai/api"
# pin a provider (optional)
default_headers = {"X-Felo-Channel": "claude-cc"}ID моделей у різних постачальників не збігаються. Оберіть модель у каталозі до того, як перемкнете базовий URL, інакше перший же виклик поверне 404.
Та половина, яку шлюз зазвичай лишає вам
LLM-шлюз маршрутизує виклики моделей. Тут той самий ключ дістає до каталогу на 5,000+ API — тож крок пошуку у вашому агенті, створені ним слайди й прочитаний ним документ списуються з одних і тих самих кредитів, а не ще з трьох постачальників.
- Search
- PPT Task
- SuperAgent
- Web Fetch
- X Search
- Mindmap
- Landing Page Task
- LiveDoc
- YouTube Subtitling
Виклики API даних ідуть під /v1/beta до іменованих постачальників — Tavily, Exa, Apollo та решти з каталогу — кожен за своєю опублікованою базою.
Де шлюз закінчується
- Автоматичного перемикання між каналами немає — повтори лишаються на вашому застосунку, і це свідомо.
- Наявність у каталозі не гарантує сумісності: у кожного виду моделі одна поверхня виклику.
- Документованого ліміту запитів на виклики моделей немає, але ліміт вищого постачальника діє.
- Кредити передплатні, неповоротні й не виводяться — поповнюйте на суму, яку збираєтеся витратити.
Шість питань про LLM-шлюз
Що таке LLM-шлюз?
Один ендпоінт перед багатьма постачальниками моделей: код звертається до одного базового URL, одного ключа й одного балансу замість дюжини SDK різних вендорів. AI-шлюз робить те саме; цей ще й продає API даних, потрібні агенту.
Чи можна лишити свій OpenAI або Anthropic SDK?
Так. Chat Completions і Responses мають форму OpenAI, Messages — нативний. Базові URL: https://openapi.felo.ai/api/v1 і https://openapi.felo.ai/api — на рівень вище, бо цей SDK сам дописує /v1/messages.
Як зрозуміти, яку модель викликати?
GET /api/v1/models перелічує всі види з каналами й ставками; у відео- й вирішальних моделей свої списки. Дивіться model_kind і викликайте відповідний ендпоінт. Наявність у списку не означає, що модель приймає кожен ендпоінт.
Чи є перемикання, коли постачальник не відповідає?
Ні, і це свідомо. Список каналів — це вибір, а не політика повторів: надсилається лише перший. Перемикання має жити у вашому застосунку, де видно помилку, бюджет і той запасний варіант, який вам справді потрібен.
Скільки це коштує?
Кожна модель має ставку Felo, що починається від десятої частини офіційної ціни постачальника, а платите ви за ставкою обраного каналу. Передплата, оплата за виклик, перше поповнення від $1, без підписки.
Чи можна викликати зображення, відео й API даних?
Так. Один ключ дістає до чат-, графічних, відео- й вирішальних моделей і каталогу на 5,000+ API за /v1/beta — усе списується з одного балансу.
Спробуйте на одному виклику
Створіть ключ, поповніть баланс і спрямуйте свій поточний SDK на один базовий URL.