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
| Hata | Düzeltme |
|---|
| Sınırsız paralel istek | Bir semaphore, kuyruk veya worker pool ekleyin. |
| Tüm hataları yeniden denemek | Yalnı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