محدودیتها
محدودیتهای نرخ درخواست و نحوه مدیریت خطای 429 در API دانا
API دانا برای هر کلید محدودیت نرخ درخواست دارد تا پایداری سرویس برای همه کاربران تضمین شود.
محدودیت پیشفرض
| بازه | حداکثر درخواست |
|---|---|
| در دقیقه | ۶۰ درخواست |
این مقدار برای کلیدهای live اعمال میشود. کلیدهای test محدودیتهای کمتری دارند.
خطای 429
وقتی از حد مجاز بیشتر شوید، API با کد 429 پاسخ میدهد:
{
"error": {
"message": "Rate limit exceeded.",
"type": "rate_limit_error",
"param": null,
"code": "rate_limit_exceeded"
}
}مدیریت خطا
با exponential backoff تلاش مجدد کنید:
import time
import httpx
def call_with_retry(payload, max_retries=3):
for attempt in range(max_retries):
response = httpx.post(
"https://api.dana.expert/v1/chat/completions",
headers={"Authorization": f"Bearer {DANA_API_KEY}"},
json=payload,
)
if response.status_code == 429:
wait = 2 ** attempt # 1s, 2s, 4s
time.sleep(wait)
continue
response.raise_for_status()
return response.json()
raise Exception("Rate limit exceeded after retries")تنظیم محدودیت
از کنسول دانا میتوانید برای هر کلید حد سقف جداگانه تعریف کنید.
نکتهها
- درخواستهای ناموفق (4xx/5xx) هم در شمارش محدودیت محاسبه میشوند.
- streaming و non-streaming هر کدام یک درخواست حساب میشوند.
- برای حجم بالا با پشتیبانی دانا تماس بگیرید.