Felo API PlatformFelo API Platform

FAQ

Rozwiązywanie problemów

Rozwiązuj problemy z uwierzytelnianiem, modelami, strumieniowaniem, zadaniami i limitami zapytań według objawów.

Zacznij od objawu, a następnie przejdź do rozwiązania. Większość niepowodzeń wynika z bazowego adresu URL, klucza, identyfikatora modelu lub salda.

Tabela objawów

ObjawPrawdopodobna przyczynaRozwiązanie
401 UNAUTHORIZEDBrakujący, błędny, unieważniony lub niewysłany kluczWyślij Authorization: Bearer $FELO_API_KEY; utwórz nowy klucz, jeśli został unieważniony
402 INSUFFICIENT_CREDITSSaldo nie pokrywa wywołaniaDoładuj w Console Billing
404 przy każdym żądaniuBazowy adres URL zawiera ścieżkę, którą endpoint już dodajeUżyj https://openapi.felo.ai/api/v1 dla klientów OpenAI i https://openapi.felo.ai/api dla klientów Anthropic
404 przy jednym modeluIdentyfikator modelu nie jest publiczny lub endpoint go nie obsługujeSprawdź identyfikator modelu na stronie modeli i w dokumentacji endpointu
400 błąd model lub max_tokensBrak wymaganego pola lub model nie akceptuje kształtu żądaniaDodaj max_tokens dla Messages; usuń nieobsługiwane pola
429Limit szybkości lub limit dostawcy upstreamOdczytaj Retry-After; zobacz Błędy, limity i ponawianie
5xxNiepowodzenie upstream lub usługiPonów z wykładniczym opóźnieniem; dołącz request_id, jeśli problem się utrzymuje
Strumień łączy się, ale nic nie wysyłaProxy buforuje odpowiedź lub parser zdarzeń oczekuje niewłaściwego formatuOdczytuj strumień przyrostowo; wyłącz buforowanie odpowiedzi w proxy
Zadanie nigdy się nie kończyNiewłaściwy endpoint odpytania lub nieobsłużony stan terminalnyOdpytuj endpoint stanu samego zadania i zatrzymuj się na wartościach terminalnych
Wywołania narzędzi są ignorowaneModel nie deklaruje tej możliwościSprawdź supported_parameters w katalogu
Data API zwraca 404Prefiks /v1/beta został dodany dwukrotnieUżyj ścieżki dokładnie tak, jak zapisano ją w dokumentacji

Uwierzytelnianie

Unieważniony klucz zwraca komunikat zawierający prefiks klucza:

{
  "status": 401,
  "code": "UNAUTHORIZED",
  "message": "API Key has been revoked (keyPrefix=...)"
}

Lista kontrolna:

  • Nagłówek ma postać Authorization: Bearer <key> dla Model API i Felo APIs.
  • Data API akceptuje też X-API-Key: <key>.
  • Klucz nie jest ujęty w cudzysłowie i nie ma na końcu znaku nowej linii ze skopiowanej zmiennej środowiskowej.
  • Wdrożone środowisko rzeczywiście ma ustawioną zmienną; klucz działający lokalnie może być nieobecny w produkcji.
  • Klucz nie został usunięty ani zrotowany. Usuniętego lub zrotowanego klucza nie można ponownie wyświetlić; utwórz nowy.

Tworzenie kluczy i limity znajdziesz w Uwierzytelnianiu.

Pułapki bazowego adresu URL

KlientPrawidłowy bazowy adres URL
OpenAI SDKhttps://openapi.felo.ai/api/v1
Anthropic SDKhttps://openapi.felo.ai/api
Surowy endpoint modeluhttps://openapi.felo.ai/api/v1/chat/completions, /responses lub /messages
Data APIhttps://openapi.felo.ai/v1/beta
Felo /v2 APIshttps://openapi.felo.ai/v2

Dwa typowe błędy:

  1. Dodawanie /chat/completions do bazowego adresu URL, który SDK już rozszerza.
  2. Ustawianie bazowego adresu URL Anthropic na https://openapi.felo.ai/api/v1. SDK dopisuje /v1/messages, więc żądanie trafia na /api/v1/v1/messages.

Problemy z identyfikatorem modelu

Identyfikatory modeli to publiczne identyfikatory z katalogu, a nie wewnętrzne nazwy dostawcy upstream ani nazwa wyświetlana.

  • Sprawdź identyfikator na stronie modeli lub w GET /api/v1/models.
  • Potwierdź, że model obsługuje protokół, który wywołujesz (supported_protocols).
  • Jeśli przypiąłeś kanał, potwierdź, że jest on opublikowany i uruchamialny dla tego modelu. Niedostępny kanał nie jest mechanizmem awaryjnym.

Zobacz Kanały i routing dostawców.

Problemy z przesyłaniem strumieniowym

  • Ustaw stream: true w treści żądania, a nie jako parametr zapytania.
  • Odczytuj treść odpowiedzi jako strumień. Czekanie na pełną odpowiedź niweczy przesyłanie strumieniowe.
  • Niektóre proxy i platformy serverless buforują odpowiedzi. Wyłącz buforowanie dla trasy, która pośredniczy w żądaniu.
  • Chat Completions przesyła strumieniowo choices[0].delta, a nie choices[0].message. Końcowa treść przychodzi w wielu fragmentach.
  • Strumień może zakończyć się bez czystego zdarzenia terminalnego, jeśli połączenie zostanie zerwane. Traktuj zerwane połączenie jako niekompletną odpowiedź.

Problemy z zadaniami asynchronicznymi

  • Odpytuj endpoint stanu należący do danej rodziny zadań. Przepływy Felo używają GET /v2/tasks/{task_id}/status; zadania wideo i obrazów modeli używają własnych endpointów generowania.
  • Zatrzymuj się przy każdym stanie terminalnym, w tym przy niepowodzeniach i wygaśnięciach, nie tylko przy powodzeniu.
  • Wywołania zwrotne wideo i obrazów są obecnie ignorowane. Nie czekaj na webhook.
  • Adres URL wyniku może być krótkotrwały. Jeśli pobieranie wygaśnie, poproś o nowy adres URL w endpointcie stanu.
  • Sprawdź zadanie przed ponownym wysłaniem. Ponowne wysłanie działającego zadania tworzy duplikat, a oba są rozliczane.

Zobacz Zadania asynchroniczne.

Problemy z Data API

  • Zachowaj dokładną ścieżkę metody z dokumentacji Data API.
  • Treści żądań są specyficzne dla dostawcy. Pole działające u jednego dostawcy nie musi działać u innego.
  • Błąd dostawcy może przyjść w odpowiedzi 4xx z komunikatem specyficznym dla dostawcy. Zapisuj w logach request_id i treść odpowiedzi.

Przypomnienia o bezpieczeństwie

  • Nigdy nie umieszczaj klucza API w kodzie przeglądarki, pakiecie aplikacji mobilnej ani publicznym repozytorium. Trzymaj go na serwerze i pośrednicz w żądaniach.
  • Nie zapisuj w logach pełnego klucza. Jeśli musisz go zidentyfikować, zapisz prefiks.
  • Natychmiast zrotuj klucz, jeśli mógł wyciec.

Przed kontaktem z pomocą techniczną

Zbierz:

  1. Endpoint i metodę HTTP.
  2. Status HTTP, code i request_id.
  3. Identyfikator modelu lub zadania.
  4. Znacznik czasu ze strefą czasową.
  5. Minimalną treść żądania z usuniętymi sekretami.

Wyślij je do pomocy technicznej wraz z adresem e-mail konta. Nie dołączaj pełnego klucza API.

Powiązane