الانتقال إلى المحتوى الرئيسي

Documentation Index

Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt

Use this file to discover all available pages before exploring further.

تعامل مع أخطاء CometAPI من خلال تحديد ما إذا كان يجب إصلاح الطلب أو إعادة محاولته. أعد محاولة 429، والإخفاقات من فئة timeout، وإخفاقات الخادم المؤقتة باستخدام backoff؛ ولا تُعِد محاولة الطلبات غير الصحيحة أو إخفاقات المصادقة.

أعد المحاولة فقط مع الإخفاقات القابلة لإعادة المحاولة

الحالة أو الإشارةإعادة المحاولة؟الإجراء
400لاأصلح نص الطلب أو المعلمات.
401لاأصلح مفتاح API وترويسة Authorization.
403غالبًا لاأزل الحقول غير المدعومة وتحقق من إمكانية الوصول إلى model.
429نعمأعد المحاولة باستخدام exponential backoff وjitter.
500 with invalid_requestلاأصلح شكل الطلب.
500, 503, 504, 524نعمأعد المحاولة باستخدام backoff واحتفظ بـ request ID.

أضف backoff

يوضح مثال Python التالي إعادة المحاولة فقط مع الإخفاقات القابلة لإعادة المحاولة:
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.")
تتضمن الاستجابة الناجحة مخرجات model:
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Hello."
      }
    }
  ],
  "usage": {
    "total_tokens": 9
  }
}

سجّل سياقًا مفيدًا

يكون شكل JSON التالي آمنًا للتخزين بعد إزالة أسرار المستخدم والملفات الكبيرة:
{
  "method": "POST",
  "path": "/v1/chat/completions",
  "model": "your-model-id",
  "status": 429,
  "request_id": "request_id_from_error_message",
  "retryable": true
}

الأخطاء الشائعة

الخطأالإصلاح
إعادة محاولة 401أوقف إعادة المحاولة وبدّل مفتاح API أو أعد تحميله.
إعادة محاولة JSON غير صالحتحقّق من نص الطلب قبل إرسال طلب آخر.
عدم وجود request ID في السجلاتالتقط نص الخطأ الكامل قبل أن يقوم SDK بتغليفه.
إعادة المحاولة فورًا بعد 429أضف jitter وقلّل التزامن.

روابط ذات صلة

Last modified on May 28, 2026