Bramka LLM
Bramka LLM z wbudowaną warstwą danych
Trzy bazowe adresy URL, jeden klucz, jeden balans. Czat, obrazy, wideo i modele decyzyjne — na Twoim obecnym SDK; wyszukiwanie, dokumenty i slajdy — z tego samego balansu, od jednej dziesiątej oficjalnej ceny dostawcy.
10%
Cena startowa względem oficjalnej ceny API dostawcy
5,000+
API w tym samym katalogu
Bramka ma zwykle jedną powierzchnię. Tutaj są trzy.
Dzielą konto, klucz i balans, ale odpowiadają na inne pytania i mają różne bazowe adresy URL. Rozpoznanie, którą wywołujesz, to cała sztuka.
| Powierzchnia | Bazowy URL | Do czego |
|---|---|---|
| API modeli | openapi.felo.ai/api/v1 · openapi.felo.ai/api | Bezpośrednie wywołanie modelu językowego, obrazów, wideo lub decyzyjnego |
| API danych | openapi.felo.ai/v1/beta | Wywołanie wskazanego zewnętrznego dostawcy danych lub wyszukiwania |
| Felo APIs | openapi.felo.ai/v2 | Własne procesy Felo: wyszukiwanie, biuro, ekstrakcja, wiedza |
Jeden klucz obejmuje wszystkie trzy. Doładowanie kupuje kredyty usługowe w USD, a wywołanie modelu, wywołanie API danych i proces Felo schodzą z tego samego — bez osobnego konta u każdego dostawcy.
Przeczytaj dokumentacjęSześć punktów końcowych, nie jeden
Wszystko pod /api/v1 to wywołanie modelu, ale rodzaj modelu decyduje, który punkt końcowy może odpowiedzieć; każdy zwraca też własny format.
| Punkt końcowy | Protokół | Zwraca |
|---|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions | Strumień lub jedna odpowiedź |
POST /api/v1/responses | OpenAI Responses | Strumień lub jedna odpowiedź |
POST /api/v1/messages | Anthropic Messages | Strumień lub jedna odpowiedź |
POST /api/v1/images/generations | Koperta obrazów OpenAI | task_id do odpytywania |
POST /api/v1/videos/generations | Koperta wideo OpenAI | task_id do odpytywania |
POST /api/v1/decisions | Schemat decyzji Felo | Typowane odpowiedzi, bez strumienia |
Trzy powierzchnie czatu to implementacje natywne, a nie warstwa translacji: każda wysyła zdarzenia we własnym protokole, więc strumień parsujesz dokładnie tak jak dziś.
Punkt końcowy wybieraj po rodzaju modelu, nie na wyczucie
Każdy model w katalogu ma model_kind, a rodzaj decyduje, który punkt końcowy może go wywołać. Rozpoznanie jest bezpłatne: czyta lokalny katalog.
# 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 | Punkt końcowy |
|---|---|
chat | Responses, Chat Completions lub Messages — zależnie od tego, co model obsługuje |
image_generation | POST /api/v1/images/generations |
video_generation | POST /api/v1/videos/generations |
decisions | POST /api/v1/decisions |
Filtr ?provider= zostawia jednego dostawcę, ?exclude_video_and_decisions=true — tylko czat i obrazy. Obecność w katalogu to nie obietnica: model wideo nie odpowie na żądanie czatu, a API zwróci model_kind_mismatch.
Trasa domyślna albo jeden nagłówek wybierający dostawcę
Jeden model może być obsługiwany przez kilka kanałów nadrzędnych, każdy z własnym dostawcą i opublikowaną stawką. Bez nagłówka platforma wybierze kanał sama; z X-Felo-Channel wybierasz Ty.
# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic # ordered selection, not a retry list- Wartość to uporządkowana lista publicznych kodów kanałów z
channels[].codemodelu, sprawdzana w kolejności, w jakiej ją zapiszesz. - Wysyłana jest tylko grupa dostawcy pierwszego kanału i według stawki tego kanału płacisz.
- Nie ma automatycznego przełączania. Lista kanałów to wybór, a nie polityka ponowień: jeśli dostawca zawiedzie, wyślij ponownie z aplikacji, z innym kanałem.
X-Felo-Channel działa na wszystkich sześciu punktach generowania powyżej. Nie dotyczy API danych ani Felo APIs: tam żądanie trafia do dostawcy wskazanego w samym żądaniu.
Ile naprawdę kosztuje wywołanie
Wywołania modeli rozliczane są za tokeny — wejście, wyjście, pamięć podręczna — z mnożnikiem rabatu kanału. Stawki podajemy za 1 mln tokenów dla czytelności, ale rozliczenie idzie z precyzją do tokena według bieżącego zrzutu cen, więc krótkie żądanie nie jest zaokrąglane do miliona.
- Stawki pamięci podręcznej stosuje się tylko wtedy, gdy odpowiedź protokołu zgłasza użycie pamięci; model bez takiego raportowania rozlicza wszystko po stawce wejściowej.
- Wyszukiwanie w sieci, które usługa modelu faktycznie wykonała i zgłosiła, kosztuje $0.01 za wyszukiwanie.
- Niektóre modele mają progi zależne od rozmiaru promptu: Claude Haiku 5.5 kosztuje $0.10 na wejściu i $0.50 na wyjściu za 1 mln tokenów do promptu 100K tokenów, a powyżej — $0.50 i $2.50 za całe żądanie.
- Pierwsze doładowanie od $1. Bez subskrypcji, bez opłaty za stanowisko, bez minimalnych zobowiązań: nieużywany klucz nic nie kosztuje.
Wywołania API danych i procesy Felo schodzą z tego samego balansu, każde według własnej opublikowanej podstawy: za udane żądanie, za zwrócony element albo za faktyczne zużycie.
Stawki i kredytyDwa limity, które wyglądają podobnie i są zupełnie różne
Brak kredytów to 402 INSUFFICIENT_CREDITS. Zbyt szybkie wywołania to 429 RATE_LIMITED. Czekanie usuwa drugie i nigdy nie usuwa pierwszego.
| Status | Kod | Co zrobić |
|---|---|---|
| 401 | UNAUTHORIZED | Popraw lub wystaw klucz ponownie |
| 402 | INSUFFICIENT_CREDITS | Doładuj w rozliczeniach konsoli i wyślij ponownie |
| 404 | zależne od punktu końcowego | Sprawdź identyfikator modelu, zadania lub trasy |
| 429 | RATE_LIMITED | Poczekaj na Retry-After i ponów |
| 5xx | CHAT_FAILED, SERVICE_UNAVAILABLE | Ponów z wykładniczym opóźnieniem i jitterem |
Dziś udokumentowane twarde limity ma tylko /v2/chat. Wywołania modeli też mogą być ograniczane po stronie dostawcy, co objawia się jako 429 — czytaj X-RateLimit-* i Retry-After, zamiast wpisywać liczby na sztywno. Każda odpowiedź zawiera request_id, a wysłany przez Ciebie X-Request-Id wraca w odpowiedzi, więc logi się schodzą.
Obrazy i wideo kończą się w tle
Oba punkty generowania zwracają task_id zamiast wyniku. Wyślij, odpytuj, odbierz — i pamiętaj: po utworzeniu zadania większość błędów przychodzi jako 200 z końcowym statusem, a nie jako błąd 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, resultNajpierw status, potem wynik: failed i interrupted też są odpowiedzią, a przyczynę podaje error.message. Jeśli przy wysyłaniu dostałeś 402, zadanie nigdy nie powstało. SuperAgent działa inaczej — zwraca stream_key i wysyła zdarzenia przez SSE, więc nie ma czego odpytywać.
Zmień bazowy URL, klient zostaje
Oba SDK działają bez zmian, gdy bazowy URL wskazuje tutaj. npx feloapi-cli setup zapisze tę samą konfigurację dla Claude Code i 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"}Identyfikatory modeli nie są wspólne dla wszystkich dostawców. Wybierz model z katalogu, zanim przełączysz bazowy URL, inaczej pierwsze wywołanie zwróci 404.
Ta połowa, którą bramka zwykle zostawia Tobie
Bramka LLM kieruje wywołania modeli. Tutaj ten sam klucz sięga też do katalogu 5,000+ API — więc krok wyszukiwania w Twoim agencie, wygenerowane przez niego slajdy i odczytany dokument schodzą z tych samych kredytów, a nie z trzech kolejnych dostawców.
- Search
- PPT Task
- SuperAgent
- Web Fetch
- X Search
- Mindmap
- Landing Page Task
- LiveDoc
- YouTube Subtitling
Wywołania API danych idą pod /v1/beta do wskazanych dostawców — Tavily, Exa, Apollo i reszty katalogu — każdy według własnej opublikowanej podstawy.
Gdzie bramka się kończy
- Brak automatycznego przełączania między kanałami — ponowienia zostają w Twojej aplikacji i to jest celowe.
- Obecność w katalogu nie gwarantuje zgodności: każdy rodzaj modelu ma jedną powierzchnię wywołania.
- Nie ma udokumentowanego limitu platformy dla wywołań modeli, ale limit dostawcy nadrzędnego nadal obowiązuje.
- Kredyty są przedpłacone, bezzwrotne i nie podlegają wypłacie — doładuj tyle, ile zamierzasz wydać.
Sześć pytań o bramkę LLM
Czym jest bramka LLM?
Jednym punktem końcowym przed wieloma dostawcami modeli, dzięki czemu kod rozmawia z jednym bazowym URL, jednym kluczem i jednym balansem zamiast z kilkunastoma SDK różnych firm. Bramka AI robi to samo; ta dodatkowo sprzedaje API danych, których potrzebuje agent.
Czy mogę zachować swoje SDK OpenAI lub Anthropic?
Tak. Chat Completions i Responses mają kształt OpenAI, a Messages jest natywne. Bazowe adresy to https://openapi.felo.ai/api/v1 i https://openapi.felo.ai/api — o poziom wyżej, bo to SDK samo dopisuje /v1/messages.
Skąd wiem, który model wywołać?
GET /api/v1/models wymienia wszystkie rodzaje wraz z kanałami i stawkami; modele wideo i decyzyjne mają własne listy. Sprawdź model_kind i wywołaj pasujący punkt końcowy. Obecność na liście nie znaczy, że model przyjmie każde wywołanie.
Czy przy awarii dostawcy następuje przełączenie?
Nie i jest to celowe. Lista kanałów to wybór, a nie polityka ponowień: wysyłany jest tylko pierwszy. Przełączanie należy do Twojej aplikacji, gdzie widać błąd, budżet i wariant zapasowy, którego naprawdę chcesz.
Ile to kosztuje?
Każdy model ma stawkę Felo zaczynającą się od jednej dziesiątej oficjalnej ceny dostawcy, a płacisz według stawki wybranego kanału. Przedpłata, rozliczenie za wywołanie, pierwsze doładowanie od $1, bez subskrypcji.
Czy mogę wywoływać obrazy, wideo i API danych?
Tak. Jeden klucz sięga do modeli czatu, obrazów, wideo i decyzyjnych oraz katalogu 5,000+ API pod /v1/beta — wszystko schodzi z jednego balansu.
Sprawdź na jednym wywołaniu
Utwórz klucz, doładuj balans i skieruj swoje SDK na jeden bazowy URL.