Ana içeriğe atla
CometAPI hatalarını, isteğin düzeltilmesi mi yoksa yeniden denenmesi mi gerektiğine karar vererek ele alın. 429, zaman aşımı sınıfındaki hataları ve geçici sunucu hatalarını backoff ile yeniden deneyin; hatalı biçimlendirilmiş istekleri veya kimlik doğrulama hatalarını yeniden denemeyin.

Yalnızca yeniden denenebilir hataları yeniden deneyin

Status veya sinyalYeniden dene?İşlem
400Hayırİstek gövdesini veya parametreleri düzeltin.
401HayırAPI key ve Authorization header’ını düzeltin.
403Genellikle hayırDesteklenmeyen alanları kaldırın ve model erişimini doğrulayın.
429EvetÜstel backoff ve jitter ile yeniden deneyin.
500 with invalid_requestHayırİstek biçimini düzeltin.
500, 503, 504, 524EvetBackoff ile yeniden deneyin ve request ID’yi saklayın.

Backoff ekleyin

Aşağıdaki Python örneği yalnızca yeniden denenebilir hataları yeniden dener:
import os
import random
import time
from openai import APIError, OpenAI, RateLimitError

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
)

for attempt in range(5):
    try:
        response = client.chat.completions.create(
            model="your-model-id",
            messages=[{"role": "user", "content": "Say hello."}],
        )
        print(response.choices[0].message.content)
        break
    except RateLimitError:
        delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)
    except APIError as error:
        status_code = getattr(error, "status_code", None)
        if status_code in {500, 503, 504, 524}:
            delay = min(30, 2**attempt) + random.random()
            time.sleep(delay)
            continue
        raise
else:
    raise RuntimeError("The request failed after retries.")
Başarılı yanıt model çıktısını içerir:
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Hello."
      }
    }
  ],
  "usage": {
    "total_tokens": 9
  }
}

Faydalı bağlamı loglayın

Aşağıdaki JSON biçimi, kullanıcı sırlarını ve büyük dosyaları kaldırdıktan sonra saklamak için güvenlidir:
{
  "method": "POST",
  "path": "/v1/chat/completions",
  "model": "your-model-id",
  "status": 429,
  "request_id": "request_id_from_error_message",
  "retryable": true
}

Yaygın hatalar

HataDüzeltme
401 yeniden denemeYeniden denemeleri durdurun ve API key’i döndürün veya yeniden yükleyin.
Geçersiz JSON’u yeniden denemeBaşka bir istek göndermeden önce istek gövdesini doğrulayın.
Loglarda request ID yokSDK sarmalamadan önce tam hata gövdesini yakalayın.
429 sonrası anında yeniden denemeJitter ekleyin ve eşzamanlılığı azaltın.

İlgili bağlantılar

Son değiştirilme tarihi 10 Haziran 2026