Felo API PlatformFelo API Platform

Průvodci

Chyby, limity a opakování

Čtěte chybové odpovědi a hlavičky limitů rychlosti, opakujte bezpečně a diagnostikujte běžné problémy.

Každé API Felo vrací tělo chyby v JSON se stabilním kódem chyby a ID požadavku. Nejprve přečtěte stav HTTP, potom kód a nakonec zprávu.

Obálka chyby

Současné produkční odpovědi používají stav HTTP jako status:

{
  "status": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid API Key",
  "request_id": "202610221444486982113280416060637185"
}
PoleVýznam
statusStavový kód HTTP, zopakovaný v těle
codeStrojově čitelný kód chyby
messageVysvětlení čitelné pro člověka
request_idNeprůhledný identifikátor tohoto požadavku; uvádějte jej v žádostech o podporu

Některé starší příklady endpointů používají status: "error" a jiný řetězec kódu. Větvěte podle stavu HTTP a pole code, nikoli podle přesného znění pole message.

Běžné kódy

HTTPKódCo znamenáCo dělat
400Validační kód specifický pro endpointParametr chybí nebo je neplatnýOpravte požadavek; neopakujte jej nezměněný
401UNAUTHORIZEDChybějící, neplatný, expirovaný nebo zrušený API klíčOdešlete Authorization: Bearer $FELO_API_KEY; pokud byl klíč zrušen, rotujte jej
402INSUFFICIENT_CREDITSNedostatek kreditů služebDobijte v Console Billing a potom opakujte
404Specifické pro endpointNeznámý model, úloha nebo trasaZkontrolujte ID modelu nebo ID úlohy a cestu endpointu
429RATE_LIMITEDByl překročen limit rychlostiPočkejte na Retry-After a potom opakujte
5xxCHAT_FAILED, *_FAILED, SERVICE_UNAVAILABLESelhání upstreamu nebo službyOpakujte s rostoucím odstupem; pokud problém přetrvává, kontaktujte podporu

Reference endpointů uvádějí kódy specifické pro daný endpoint. Začněte u chyb Chat API nebo u reference endpointu, který voláte.

Endpointy generování modelů

POST /api/v1/images/generations a POST /api/v1/videos/generations vracejí chyby na úrovni endpointu v obálce OpenAI namísto výše uvedené obálky:

{
  "error": {
    "message": "Model kind does not match this generation endpoint",
    "type": "invalid_request_error",
    "param": null,
    "code": "model_kind_mismatch"
  }
}

ID požadavku je v hlavičce odpovědi X-Request-Id, nikoli v těle. Odmítnutý požadavek nevytvoří úlohu. Jakmile úloha existuje, většina selhání přichází jako koncový stav úlohy v odpovědi 200 namísto chyby HTTP: zkontrolujte status na hodnoty failed nebo interrupted a potom přečtěte error.message. Viz Generování obrázků a Asynchronní úlohy.

ID požadavků

Těla chyb Felo obsahují request_id. Zaznamenejte jej spolu s endpointem, stavem HTTP, kódem chyby, ID modelu a ID úlohy. Nikdy nezaznamenávejte celý API klíč.

Model API také přijímá volitelnou hlavičku požadavku X-Request-Id. Když ji odešlete, je vrácena zpět pro diagnostiku, což vám umožní korelovat vlastní logy s požadavkem. Pokud ji neodešlete, použijte vrácený request_id.

Limity rychlosti

/v2/chat je jediný endpoint Felo s dokumentovanými vynucenými limity rychlosti:

  • Na API klíč, okno 1 minuty.
  • Na uživatele, okno 1 minuty.
  • Na uživatele, okno 1 hodiny.

Uživatelé s aktivním placeným předplatným Felo, včetně podnikových předplatných, jsou z nich vyjmuti a nedostávají žádné hlavičky X-RateLimit-*. Pokud stav předplatného nelze ověřit, limity se stále uplatňují.

HlavičkaVýznam
X-RateLimit-LimitLimit nejužší dimenze, která je aktuálně v platnosti
X-RateLimit-RemainingMinimální zbývající kvóta napříč třemi dimenzemi
X-RateLimit-ResetUnixový časový údaj v sekundách, kdy se aktuální okno resetuje
Retry-AfterU odpovědi 429 doporučené zpoždění v sekundách

Ostatní endpointy /v2/** aktuálně nemají vynucené limity rychlosti. Požadavky na Model API mohou být stále omezeny upstreamovým poskytovatelem, což se může projevit jako 429.

Nezadávejte číselné limity natvrdo. Čtěte hlavičky u každé odpovědi.

Zásady opakování

SituaceOpakovat?
400, 401, 402, 404Ne. Nejprve opravte požadavek, klíč nebo zůstatek.
429Ano, po Retry-After nebo X-RateLimit-Reset.
5xx, časové limity, resetování připojeníAno, s exponenciálním rostoucím odstupem a jitterem.
Streamovací připojení přerušené uprostřed odpovědiOpakujte pouze tehdy, pokud vaše aplikace snese duplicitní generování.

Doporučená smyčka:

  1. Opakujte pouze idempotentní nebo bezpečně opakovatelné požadavky.
  2. Používejte exponenciální odstup: začněte kolem 1 sekundy, zdvojnásobujte jej, zastropujte na 30 sekund.
  3. Přidejte náhodný jitter, aby klienti neopakovali v souběhu.
  4. Po malém počtu pokusů skončete a zobrazte chybu.
  5. Při 429 respektujte Retry-After namísto vlastního plánu.

Pořadí ladění

  1. Zkontrolujte, že klíč existuje a není zrušený.
  2. Zavolejte GET /api/v1/models se stejným klíčem a potvrďte ověření.
  3. Odešlete nejmenší platný požadavek na cílový endpoint.
  4. Přidávejte streamování, nástroje nebo velké vstupy po jednom.
  5. U asynchronní práce zkontrolujte stav úlohy před opětovným odesláním.

Související