> ## 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` مع jitter، ومراقبة الاستخدام حسب model والمسار.

تعامل مع حدود المعدل من خلال التحكم في التزامن قبل أن تغادر الطلبات تطبيقك. عندما تُرجع CometAPI الرمز `429`، أعد المحاولة باستخدام exponential backoff وjitter، ثم خفّض حركة المرور المتدفقة إذا تكررت محاولات الإعادة.

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

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

```python theme={null}
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())
```

النتيجة هي مصفوفة من مخرجات model:

```json theme={null}
[
  "Hello.",
  "A concise title",
  "{\"key\":\"value\"}"
]
```

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

يوضح مثال JavaScript التالي كيفية إعادة محاولة استجابات `429` مع jitter:

```javascript theme={null}
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 عادي:

```json theme={null}
{
  "choices": [
    {
      "message": {
        "content": "Hello."
      }
    }
  ]
}
```

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

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

## روابط ذات صلة

* [رموز الأخطاء واستراتيجية إعادة المحاولة](/ar/guides/error-codes-and-retry-strategy)
* [رموز الأخطاء والمعالجة](/ar/errors/error-codes-handling)
* [صفحة النماذج](/ar/overview/models)
* [دليل النماذج](https://www.cometapi.com/models/)
* [الأسعار](https://www.cometapi.com/pricing/)
* [البدء السريع مع CometAPI](/ar/overview/quick-start)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "TechArticle",
        "@id": "https://apidoc.cometapi.com/guides/rate-limits-and-concurrency",
        "headline": "كيف أتعامل مع حدود المعدل والتزامن؟",
        "description": "تعامل مع حدود المعدل في CometAPI عبر تقييد التزامن، وإعادة محاولة استجابات 429 مع jitter، ومراقبة الاستخدام حسب model والمسار.",
        "url": "https://apidoc.cometapi.com/guides/rate-limits-and-concurrency",
        "author": {
          "@type": "Organization",
          "name": "CometAPI"
        },
        "publisher": {
          "@type": "Organization",
          "name": "CometAPI",
          "url": "https://www.cometapi.com"
        }
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "توثيق CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "الأدلة",
            "item": "https://apidoc.cometapi.com/guides/use-cometapi-with-openai-sdk"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "كيف أتعامل مع حدود المعدل والتزامن؟",
            "item": "https://apidoc.cometapi.com/guides/rate-limits-and-concurrency"
          }
        ]
      }
    ]
    }
    `}
</script>
