Felo API PlatformFelo API Platform

Kılavuzlar

Hatalar, sınırlar ve yeniden deneme

Hata yanıtlarını ve hız sınırı başlıklarını okuyun, güvenle yeniden deneyin ve yaygın sorunları teşhis edin.

Her Felo API, istikrarlı bir hata kodu ve bir istek kimliği içeren bir JSON hata gövdesi döndürür. Önce HTTP durumunu, ardından kodu, sonra mesajı okuyun.

Hata zarfı

Mevcut üretim yanıtları HTTP durumunu status olarak kullanır:

{
  "status": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid API Key",
  "request_id": "202610221444486982113280416060637185"
}
AlanAnlamı
statusHTTP durum kodu, gövdede yinelenir
codeMakine tarafından okunabilir hata kodu
messageİnsan tarafından okunabilir açıklama
request_idBu istek için opak tanımlayıcı; destek taleplerinize ekleyin

Bazı eski endpoint örnekleri status: "error" ve farklı bir kod dizesi kullanır. HTTP durumuna ve code alanına göre dallanın, message metninin tam ifadesine göre değil.

Yaygın kodlar

HTTPKodNe anlama gelirNe yapmalı
400Endpoint'e özgü doğrulama koduBir parametre eksik veya geçersizİsteği düzeltin; değiştirmeden yeniden denemeyin
401UNAUTHORIZEDAPI anahtarı eksik, geçersiz, süresi dolmuş veya iptal edilmişAuthorization: Bearer $FELO_API_KEY gönderin; iptal edildiyse anahtarı döndürün
402INSUFFICIENT_CREDITSYeterli hizmet kredisi yokConsole Billing'de bakiye yükleyin, ardından yeniden deneyin
404Endpoint'e özgüBilinmeyen model, görev veya rotaModel kimliğini veya görev kimliğini ve endpoint yolunu kontrol edin
429RATE_LIMITEDBir hız sınırı aşıldıRetry-After süresini bekleyin, ardından yeniden deneyin
5xxCHAT_FAILED, *_FAILED, SERVICE_UNAVAILABLEUpstream veya hizmet arızasıGeri çekilmeyle yeniden deneyin; devam ederse destekle iletişime geçin

Endpoint referansları o endpoint'e özgü kodları listeler. Chat API hataları veya çağırdığınız endpoint'in referansıyla başlayın.

Model oluşturma endpoint'leri

POST /api/v1/images/generations ve POST /api/v1/videos/generations, endpoint düzeyindeki hataları yukarıdaki zarf yerine OpenAI zarfı içinde döndürür:

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

İstek kimliği gövdede değil, X-Request-Id yanıt başlığındadır. Reddedilen bir istek görev oluşturmaz. Bir görev oluştuktan sonra çoğu arıza, HTTP hatası yerine 200 yanıtı içinde nihai bir görev durumu olarak gelir: status alanında failed veya interrupted olup olmadığını kontrol edin, ardından error.message alanını okuyun. Bkz. Görsel Oluşturma ve Eşzamansız Görevler.

İstek kimlikleri

Felo hata gövdeleri request_id içerir. Bunu endpoint, HTTP durumu, hata kodu, model kimliği ve görev kimliğiyle birlikte günlüğe kaydedin. Tam API anahtarını asla günlüğe kaydetmeyin.

Model API ayrıca isteğe bağlı bir X-Request-Id istek başlığı kabul eder. Bir tane gönderdiğinizde, tanılama amacıyla geri yansıtılır; bu da kendi günlüklerinizi bir istekle ilişkilendirmenizi sağlar. Göndermezseniz döndürülen request_id değerini kullanın.

Hız sınırları

/v2/chat, belgelenmiş zorunlu hız sınırlarına sahip tek Felo endpoint'idir:

  • API anahtarı başına, 1 dakikalık pencere.
  • Kullanıcı başına, 1 dakikalık pencere.
  • Kullanıcı başına, 1 saatlik pencere.

Kurumsal abonelikler dahil geçerli bir ücretli Felo aboneliği olan kullanıcılar muaftır ve X-RateLimit-* başlıkları almaz. Abonelik durumu doğrulanamazsa sınırlar yine de geçerlidir.

BaşlıkAnlamı
X-RateLimit-LimitŞu anda yürürlükte olan en dar boyutun sınırı
X-RateLimit-RemainingÜç boyut arasında kalan minimum kota
X-RateLimit-ResetGeçerli pencerenin sıfırlandığı Unix zaman damgası (saniye)
Retry-After429 durumunda önerilen gecikme (saniye)

Diğer /v2/** endpoint'lerinde şu anda zorunlu bir hız sınırı yoktur. Model API istekleri yine de upstream sağlayıcı tarafından sınırlanabilir ve bu 429 olarak ortaya çıkabilir.

Sayısal sınırları sabit kodlamayın. Her yanıttaki başlıkları okuyun.

Yeniden deneme ilkesi

DurumYeniden denemeli mi?
400, 401, 402, 404Hayır. Önce isteği, anahtarı veya bakiyeyi düzeltin.
429Evet, Retry-After veya X-RateLimit-Reset sonrasında.
5xx, zaman aşımları, bağlantı sıfırlamalarıEvet, üstel geri çekilme ve titreşimle.
Akış bağlantısı yanıt ortasında düştüYalnızca uygulamanız yinelenen bir oluşturmaya tolerans gösterebiliyorsa yeniden deneyin.

Önerilen döngü:

  1. Yalnızca idempotent veya yinelenmesi güvenli istekleri yeniden deneyin.
  2. Üstel geri çekilme kullanın: yaklaşık 1 saniyeyle başlayın, iki katına çıkarın, 30 saniyede sınırlayın.
  3. İstemcilerin aynı anda yeniden denememesi için rastgele titreşim ekleyin.
  4. Az sayıda denemeden sonra durun ve hatayı ortaya koyun.
  5. 429 durumunda kendi programınız yerine Retry-After süresine uyun.

Hata ayıklama sırası

  1. Anahtarın mevcut ve iptal edilmemiş olduğunu kontrol edin.
  2. Kimlik doğrulamayı doğrulamak için aynı anahtarla GET /api/v1/models çağırın.
  3. Hedef endpoint'e gönderilebilecek en küçük geçerli isteği gönderin.
  4. Akış, araçlar veya büyük girdileri tek tek ekleyin.
  5. Eşzamansız işler için yeniden göndermeden önce görev durumunu kontrol edin.

İlgili