Developer guide
کد خطا
اقدامات و قوانین تلاش مجدد بر اساس کد وضعیت
این صفحه کدهای وضعیتی را که درگاه برمیگرداند، معنای آنها و اقدامات مربوط به هر کد را整理 میکند.
اگر upstream کد 4xx یا 5xx برگرداند، همان کد را منتقل میکنیم و در سایر موارد از جدول زیر پیروی میکنیم.
همچنین شکل بدنه خطا در دو استاندارد سازگار، قوانین error.type سازگار با Anthropic و صفحه کنسول بررسی محدودیتها و میزان مصرف را توضیح دادهایم.
کد وضعیت
| کد | معنا | اقدام |
|---|---|---|
| 400 | خطا در مقدار درخواست. limit در فهرست مدلهای سازگار با Anthropic خارج از محدوده 1~1000 است، یا تلاش شده است پاسخ ذخیرهشده با GET /responses/{responseId}?stream=true ادامه داده شود. | مقدار را در محدوده مجاز اصلاح کنید. پاسخ ذخیرهشده را بدون stream دریافت کنید. |
| 401 | کلید وجود ندارد یا منقضی یا لغو شده است | وضعیت کلید را در صفحه کلید API بررسی کنید و نام هدر و پیشوند Bearer را بررسی کنید. |
| 403 | مجوز دسترسی به مدل وجود ندارد، محدودیت مصرف رد شده است، اعتبار کافی نیست، یا مالک صدا نیستید | error.message دلیل را مشخص میکند. مقادیر را در صفحه بخش بررسی محدودیتها و میزان مصرف در زیر مشاهده کنید. |
| 404 | مدل وجود ندارد یا با این کلید قابل دسترسی نیست (از جمله مدلهایی که پشتیبانی از آنها پایان یافته است)، مسیر وجود ندارد، یا خروجی CleviDrive بیش از دوره نگهداری 3 روزه باقی مانده است | ابتدا فهرست مدلهای قابل فراخوانی را با GET /models بررسی کنید. مسیر را با جدول صفحه فراخوانی API تطبیق دهید. |
| 408 · 409 · 413 | پایان مهلت upstream، ازدحام، یا بیشازحد بودن اندازه درخواست. مهلت بر اساس مسیر صوت و صدا 5 دقیقه و سقف درخواست 28 MiB است | اگر 409 دارای Retry-After است، بهاندازه همان زمان منتظر بمانید. برای 413 درخواست را تقسیم کنید. |
| 429 | ارائهدهنده upstream محدودیت سرعت اعمال کرده است | اگر Retry-After وجود دارد، همان را رعایت کنید؛ در غیر این صورت با backoff نمایی دوباره تلاش کنید. |
| 5xx | خطای موقت درگاه یا upstream (شامل 503) | با backoff نمایی دوباره تلاش کنید. اگر مشکل تکرار شد، آن را همراه با X-Request-Id از طریق راهنما و تماس با ما اطلاع دهید. |
تلاش مجدد
درگاه 429 اختصاصی ایجاد نمیکند و پاسخ upstream را بیسروصدا دوباره ارسال یا در صف قرار نمیدهد.
انتظار و تلاش مجدد بر عهده کلاینت است.
| کد | زمان انتظار | سپس |
|---|---|---|
| 409 | اگر Retry-After وجود داشته باشد، به همان مدت صبر میکند | همان درخواست را دوباره ارسال میکند. |
| 429 | اگر Retry-After وجود داشته باشد، به همان مدت صبر میکند؛ در غیر این صورت، از عقبنشینی نمایی استفاده میکند | همان درخواست را دوباره ارسال میکند. |
| 5xx | عقبنشینی نمایی | اگر تکرار شد، درخواست پشتیبانی ارسال میکند. |
| 413 | بدون انتظار | درخواست را تقسیم میکند. |
بدنه خطا
شکل بدنه خطا بسته به مشخصات متفاوت است. خطاهای بالادستی فقط با باقی گذاشتن پیام مرتبسازی و ارسال میشوند و پشته یا فیلدهای داخلی منتقل نمیشوند.
این بدنه مربوط به مسیر سازگار با OpenAI است.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}این بدنه مربوط به مسیر سازگار با Anthropic است. error.type بر اساس کد وضعیت تعیین میشود.
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "..."
},
"request_id": "rqid..."
}| کد وضعیت | error.type |
|---|---|
| 400 | invalid_request_error |
| 401 | authentication_error |
| 403 | permission_error |
| 404 | not_found_error |
| 413 | request_too_large |
| 429 | rate_limit_error |
| 529 | overloaded_error |
| سایر کدها | api_error |
بررسی محدودیتها و میزان استفاده
مقادیر محدودیت برای هر فضای کاری متفاوت است. دلیل 403 را در error.message بررسی کنید و سپس مقادیر را در صفحه زیر ببینید.
| موارد قابل بررسی | صفحه کنسول |
|---|---|
| محدودیت اعمالشده برای فضای کاری من | محدودیت استفاده تخصیصیافته در نمای کلی |
| محدوده مجاز توسط طرح و موجودی | طرح و اعتبارها |
| میزان استفاده واقعی (تعداد فراخوانیها بر اساس مدل و کلید، اعتبارهای کسرشده تخمینی) | میزان استفاده |
| وضعیت کلید (منقضی یا لغوشده بودن) | کلید API |
