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

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، أعد المحاولة باستخدام exponential backoff وjitter، ثم خفّض حركة الاندفاع إذا تكررت إعادة المحاولة.

تقييد التزامن

يوضح مثال Python التالي كيفية وضع حد أقصى لطلبات الدردشة المتزامنة باستخدام async semaphore:
import asyncio
import os
from openai import AsyncOpenAI

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

semaphore = asyncio.Semaphore(5)

async def ask(prompt):
    async with semaphore:
        completion = await client.chat.completions.create(
            model="your-model-id",
            messages=[{"role": "user", "content": prompt}],
        )
        return completion.choices[0].message.content

async def main():
    prompts = ["Say hello.", "Write a title.", "Return one JSON key."]
    results = await asyncio.gather(*(ask(prompt) for prompt in prompts))
    print(results)

asyncio.run(main())
النتيجة هي مصفوفة من مخرجات النموذج:
[
  "Hello.",
  "A concise title",
  "{\"key\":\"value\"}"
]

إعادة محاولة حدود المعدل

يوضح مثال JavaScript التالي كيفية إعادة محاولة استجابات 429 مع jitter:
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.COMETAPI_KEY,
  baseURL: "https://api.cometapi.com/v1",
});

async function sleep(milliseconds) {
  return new Promise((resolve) => setTimeout(resolve, milliseconds));
}

async function createCompletion() {
  for (let attempt = 0; attempt < 5; attempt += 1) {
    try {
      return await client.chat.completions.create({
        model: "your-model-id",
        messages: [{ role: "user", content: "Say hello." }],
      });
    } catch (error) {
      if (error.status !== 429 || attempt === 4) {
        throw error;
      }

      const delay = Math.min(30000, 1000 * 2 ** attempt);
      await sleep(delay + Math.random() * 1000);
    }
  }
}

const completion = await createCompletion();
console.log(completion.choices[0].message.content);
تحتوي الاستجابة الناجحة على chat completion عادي:
{
  "choices": [
    {
      "message": {
        "content": "Hello."
      }
    }
  ]
}

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

الخطأالحل
طلبات متوازية غير محدودةأضف semaphore أو queue أو worker pool.
إعادة محاولة جميع حالات الفشلأعد المحاولة فقط مع 429 وإخفاقات الخادم المؤقتة.
عدم وجود مقاييس لكل modelسجّل المسار وmodel ID والحالة وزمن الاستجابة لكل طلب.
عاصفة إعادة المحاولةأضف jitter وضع حدًا أقصى لتأخير إعادة المحاولة.

روابط ذات صلة

Last modified on May 28, 2026