Ana içeriğe atla

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.

İstekler uygulamanızdan çıkmadan önce eşzamanlılığı kontrol ederek rate limit’leri yönetin. CometAPI 429 döndürdüğünde, exponential backoff ve jitter ile yeniden deneyin; tekrar eden yeniden denemeler olursa ani trafik artışını azaltın.

Eşzamanlılığı sınırlayın

Aşağıdaki Python örneği, async semaphore ile eşzamanlı chat isteklerini sınırlandırır:
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())
Sonuç, model çıktılarından oluşan bir dizidir:
[
  "Hello.",
  "A concise title",
  "{\"key\":\"value\"}"
]

Rate limit’leri yeniden deneyin

Aşağıdaki JavaScript örneği, 429 yanıtlarını jitter ile yeniden dener:
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);
Başarılı yanıt, normal bir chat completion içerir:
{
  "choices": [
    {
      "message": {
        "content": "Hello."
      }
    }
  ]
}

Yaygın hatalar

HataDüzeltme
Sınırsız paralel istekBir semaphore, kuyruk veya worker pool ekleyin.
Tüm hataları yeniden denemekYalnızca 429 ve geçici sunucu hatalarını yeniden deneyin.
Model bazında metrik olmamasıHer istek için route, model ID, durum ve gecikmeyi loglayın.
Yeniden deneme fırtınasıJitter ekleyin ve maksimum yeniden deneme gecikmesine sınır koyun.

İlgili bağlantılar

Last modified on May 28, 2026