שגיאות ומגבלות
Markdownקודי התשובות, משמעותם ומה לעשות. כל השגיאות בפורמט JSON וכוללות Request ID.
המדריך המלא
פורמט השגיאה
השגיאה מגיעה בפורמט של ה-API שאליו פניתם: האובייקט error עבור OpenAI, {"type": "error", "error": {...}} עבור Anthropic, וכן error עם השדות status וכן details עבור Gemini. לכן ערכות SDK מזהות אותן כשגיאות API רגילות.
error.codeוכןerror.reason— מחלקת השגיאה מהטבלה שלהלן; שני השדות תואמים.error.type— הערך הרגיל של הפורמט (לדוגמה,invalid_request_errorאוserver_error).error.request_id(ב-Anthropic —request_idברמה העליונה), הכותרתX-Request-IDוסוף הודעת השגיאה מציינים את מזהה הבקשה.- ב-Gemini, המחלקה נמצאת ב-
error.details:ErrorInfo.reason— אותו קוד באותיות גדולות (לדוגמה,MODEL_OVERLOADED),domain—ailoot.ai; מזהה הבקשה נמצא ב-RequestInfo.requestId. - בפורמט Gemini, שגיאת 5xx שאין לשלוח מחדש אוטומטית וגם
result_pending_checkמגיעים עם סטטוס 409 ועםstatusABORTED: כך Gemini SDK ו-CLI אינם שולחים אותן מחדש בעצמם. מחלקת השגיאה נמצאת ב-ErrorInfo.reason(לדוגמה,MODEL_TIMEOUTאוRESULT_PENDING_CHECK). - בתשובה בפורמט OpenAI יש גם שדות ברמה העליונה
codeוכןmessage— עבור לקוחות ישנים.
{
"code": "API_KEY_REQUIRED",
"error": {
"code": "invalid_api_key",
"message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
"param": null,
"reason": "invalid_api_key",
"request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
"type": "invalid_request_error"
},
"message": "No API key was sent with the request. Nothing was charged. …"
}{
"type": "error",
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"reason": "invalid_api_key",
"message": "… Nothing was charged. … Request ID: 94ed3e31-4373-41ce-bf8a-0d1ed3f7235e."
},
"request_id": "94ed3e31-4373-41ce-bf8a-0d1ed3f7235e"
}{
"error": {
"code": 401,
"status": "UNAUTHENTICATED",
"message": "The API key is not valid. Nothing was charged. … Request ID: e7aa743b-9d0d-4064-b206-2562609f545b.",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "INVALID_API_KEY",
"domain": "ailoot.ai",
"metadata": {
"code": "invalid_api_key",
"reason": "invalid_api_key",
"request_id": "e7aa743b-9d0d-4064-b206-2562609f545b"
}
},
{
"@type": "type.googleapis.com/google.rpc.RequestInfo",
"requestId": "e7aa743b-9d0d-4064-b206-2562609f545b"
}
]
}
}קודי שגיאות
| HTTP | מחלקה (reason) | מה קרה | מה לעשות |
|---|---|---|---|
| 400 | invalid_request | הבקשה אינה תקינה: גוף הבקשה או פרמטר שגויים; המודל אינו תומך בשדה, בקובץ מצורף או בכלי שבבקשה; המפתח נשלח בכתובת | תקנו את הבקשה לפי הודעת השגיאה: הסירו את השדה, הקובץ המצורף או הכלי שאינם נתמכים; העבירו את המפתח בכותרת. דחייה בגלל שדה, קובץ מצורף או כלי שאינם נתמכים מתרחשת לפני שמירת הרזרבה — לא בוצע חיוב |
| 400 | context_length_exceeded | הבקשה חורגת מחלון ההקשר של המודל | קצרו את ההיסטוריה או בחרו מודל עם חלון הקשר גדול יותר |
| 400 | content_policy_violation | הבקשה נדחתה לפי כללי המודל | נסחו מחדש את הבקשה |
| 401 | invalid_api_key | המפתח חסר או אינו תקין | בדקו שהמפתח נשלח בשלמותו |
| 401 | api_key_disabled | המפתח מושבת | הפעילו את המפתח או צרו מפתח חדש |
| 402 | insufficient_balance, insufficient_quota | אין די יתרה פנויה אפילו לרזרבה המינימלית (insufficient_quota — אותו מצב בפורמט המוכר ל-OpenAI SDK) | הוסיפו כסף ליתרה או הקטינו את max_tokens |
| 402 | api_key_quota_exhausted | מגבלת ההוצאות הכוללת של המפתח נוצלה במלואה | הגדילו את מגבלת המפתח באזור האישי |
| 402 | payment_disputed | בחשבון יש חוב בגין תשלום שבמחלוקת | בקשות חדשות מושהות עד לפירעון החוב — פנו לתמיכה |
| 403 | api_key_expired | תוקף המפתח פג | צרו מפתח חדש |
| 403 | account_inactive | החשבון שלכם מושבת | פנו לתמיכה |
| 403 | permission_denied | הבקשה הזאת אסורה למפתח (למשל לפי IP) | בדקו את מגבלות המפתח |
| 404 | model_not_found | אין מודל כזה | השוו את המזהה לרשימה ב-/v1/models |
| 404 | unsupported_endpoint | המודל אינו פועל בפורמט הזה | בחרו פורמט אחר או מודל אחר |
| 404 | not_found | אין נתיב או אובייקט כזה (למשל משימה) | בדקו את הכתובת ואת המזהה |
| 409 | duplicate_request | הפעולה עם אותו מפתח אידמפוטנטיות כבר התקבלה, וייתכן שהושלמה | בדקו את תוצאת הפעולה הראשונה; אל תשלחו פעולה חדשה |
| 409 | not_ready, video_not_ready | משימת הווידאו או משימה אחרת עדיין אינה מוכנה | בקשו את הסטטוס מאוחר יותר |
| 409, 503 | result_pending_check | תוצאת הבקשה עדיין נבדקת. במשימת וידאו זהו הדגל result_pending_check: true בתשובת הסטטוס, והמשימה עצמה נשארת במצב in_progress | אל תשלחו את הבקשה שוב — הסטטוס יופיע בהיסטוריה (GET https://ailoot.ai/api/v1/usage). אל תיצרו מחדש את משימת הווידאו: בדקו אותה מאוחר יותר באמצעות GET /v1/videos/{id} |
| 410 | model_retired | המודל הוצא משירות | בחרו גרסה חדשה ב-GET /v1/models |
| 413 | request_too_large | גוף הבקשה גדול מדי | הקטינו את הקבצים או את ההיסטוריה |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | יותר מדי בקשות או בקשות בו-זמניות מהחשבון שלכם | המתינו (הכותרת Retry-After, בדרך כלל 10 שניות) ונסו שוב |
| 429 | usage_limit_reached | חלון ההוצאות של המפתח נוצל במלואו (5 שעות, 1 יום או 7 ימים) | המתינו להתחדשות החלון או הגדילו את מגבלת המפתח |
| 500 | internal_error | שגיאת Ailoot | פנו לתמיכה עם Request ID |
| 502 | invalid_model_response, empty_response, incomplete_response | המודל החזיר תשובה לא תקינה, ריקה או חלקית | מצאו את ה-Request ID בהיסטוריית האזור האישי. אם יש שם תוצאה או חיוב, שליחה חוזרת תיצור בקשה נוספת בתשלום. היעדר רשומה אינו מאשר שהבקשה לא נשלחה או לא בוצעה: אל תחזרו על שליחה שמצבה אינו ידוע; פנו לתמיכה עם ה-Request ID. |
| 502 | result_not_delivered | התוצאה לא נמסרה באשמת Ailoot, והרזרבה או החיוב הוחזרו | אפשר לשלוח את הבקשה מחדש |
| 503 | model_overloaded | המודל עמוס זמנית | אם X-Should-Retry: true — נסו שוב לאחר מספר השניות של Retry-After; אם false — בדקו תחילה את ה-Request ID בהיסטוריה |
| 503 | model_unavailable | המודל אינו זמין זמנית | בחרו מודל אחר. אם X-Should-Retry: true — נסו שוב לאחר מספר השניות של Retry-After; אם false — בדקו תחילה את ה-Request ID בהיסטוריה |
| 503 | service_unavailable | כשל זמני בצד Ailoot | אם X-Should-Retry: true — נסו שוב לאחר מספר השניות של Retry-After; אם false — בדקו תחילה את ה-Request ID בהיסטוריה |
| 503 | charge_not_confirmed | התשובה לא נמסרה: לא ניתן היה לאמת את החיוב; הרזרבה שוחררה ולא בוצע חיוב | אם X-Should-Retry: true — נסו שוב לאחר מספר השניות של Retry-After; אם false — בדקו תחילה את ה-Request ID בהיסטוריה |
| 504 | model_timeout | המודל לא ענה בזמן; התוצאה עדיין עשויה להופיע | אל תשלחו את הבקשה מחדש לפני שבדקתם את ה-Request ID בהיסטוריה |
הקודים של תשובות המודל ושל בדיקת התוצאה (502, 503 ו-504) מציינים כעת את המודל או את הבקשה: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed וכן result_pending_check. אם הקוד שלכם משווה את error.code לערכים הישנים, החליפו אותם בקודים מהטבלה; את ההתאמה בין הקודים הישנים לחדשים תסביר התמיכה.
מתי לשלוח בקשה שוב
- תחילה בדקו את X-Should-Retry ואת מחלקת השגיאה: כאשר מתקבל
false,result_pending_checkאוmodel_timeoutאל תשלחו שוב אוטומטית. מצאו את ה-Request ID בהיסטוריית האזור האישי: שם מופיעים התוצאה והחיוב. - שליחה חוזרת בטוחה כשמתקבל X-Should-Retry: true: המתינו
Retry-Afterשניות. ב-5xx, הקוד לבדו אינו מספיק: ייתכן שהתוצאה כבר הופיעה. בדקו תחילה את ההיסטוריה באזור האישי או פנו לתמיכה עם Request ID. הדבר חשוב במיוחד לתמונות, וידאו, מוזיקה וצעדים ארוכים של סוכנים. - שליחה חוזרת לא תעזור: 400, 401, 402, 403, 404 — תקנו תחילה את הבקשה, המפתח או היתרה.
מגבלות
קצב הבקשות ומספר הבקשות בו-זמניות מוגבלים לכל החשבון שלכם, ולא למפתח יחיד. חריגה מחזירה 429 rate_limit_exceeded עם הכותרת Retry-After: 10. אם המודל עצמו עמוס — 503 model_overloaded עם Retry-After: 30. אם נדרשת קיבולת גבוהה יותר, פנו ל- תמיכה.
מגבלות ההוצאות מוגדרות במפתח: המגבלה הכוללת — 402 api_key_quota_exhausted, וחלונות של 5 שעות, 1 יום ו-7 ימים — 429 usage_limit_reached. פרטים נוספים — מפתחות וכתובת ה-API.
מודלי NVIDIA: תור
אפשר לבקש את רשימת המודלים גם ביתרה של אפס; ליצירה נדרשת יתרה לרזרבה. מודלי NVIDIA (Nemotron ואחרים) פועלים דרך תור משותף: בעומס גבוה התשובה עשויה להגיע מאוחר יותר או שתוחזר השגיאה "המודל עמוס זמנית" עם הכותרת Retry-After — נסו שוב לאחר הזמן המצוין. המחירים מופיעים בקטלוג והחיוב זהה לזה של המודלים האחרים.
המודל קובע את מגבלות הגודל: חלון ההקשר (מספר הטוקנים שאפשר לשלוח) ואורך התשובה המרבי. הן מופיעות ב- קטלוג.
היסטוריה והוצאות
היסטוריה והוצאות · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · התחברות וסשנים