Langsung ke konten utama

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.

Tangani rate limit dengan mengontrol concurrency sebelum request keluar dari aplikasi Anda. Saat CometAPI mengembalikan 429, coba ulang dengan exponential backoff dan jitter, lalu kurangi traffic burst jika percobaan ulang berulang kali terjadi.

Batasi concurrency

Contoh Python berikut membatasi request chat yang berjalan secara bersamaan dengan 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())
Hasilnya adalah array berisi output model:
[
  "Hello.",
  "A concise title",
  "{\"key\":\"value\"}"
]

Coba ulang rate limit

Contoh JavaScript berikut mencoba ulang respons 429 dengan 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);
Respons yang berhasil berisi chat completion normal:
{
  "choices": [
    {
      "message": {
        "content": "Hello."
      }
    }
  ]
}

Error umum

KesalahanPerbaikan
Request paralel tanpa batasTambahkan semaphore, antrean, atau worker pool.
Mencoba ulang semua kegagalanCoba ulang hanya 429 dan kegagalan server sementara.
Tidak ada metrik per modelCatat route, model ID, status, dan latency untuk setiap request.
Badai retryTambahkan jitter dan batasi delay retry maksimum.

Tautan terkait

Last modified on May 28, 2026