מדריכים
שגיאות, מגבלות וניסיונות חוזרים
קראו תגובות שגיאה וכותרות הגבלת קצב, נסו שוב בבטחה ואבחנו כשלים נפוצים.
כל API של Felo מחזיר גוף שגיאה ב-JSON עם קוד שגיאה יציב ומזהה בקשה. קראו קודם את סטטוס ה-HTTP, אחר כך את הקוד, ואז את ההודעה.
מעטפת השגיאה
תגובות הייצור הנוכחיות משתמשות בסטטוס ה-HTTP כ-status:
{
"status": 401,
"code": "UNAUTHORIZED",
"message": "Invalid API Key",
"request_id": "202610221444486982113280416060637185"
}| שדה | משמעות |
|---|---|
status | קוד סטטוס HTTP, מופיע שוב בגוף |
code | קוד שגיאה קריא למכונה |
message | הסבר קריא לאדם |
request_id | מזהה אטום לבקשה הזו; צרפו אותו לפניות תמיכה |
חלק מדוגמאות נקודות הקצה הוותיקות משתמשות ב-status: "error" ובמחרוזת קוד שונה. הסתעפו לפי סטטוס ה-HTTP ו-code, ולא לפי הנוסח המדויק של message.
קודים נפוצים
| HTTP | קוד | מה זה אומר | מה לעשות |
|---|---|---|---|
| 400 | קוד אימות ייחודי לנקודת הקצה | פרמטר חסר או לא חוקי | תקנו את הבקשה; אל תנסו שוב ללא שינוי |
| 401 | UNAUTHORIZED | מפתח API חסר, לא חוקי, שפג תוקפו או שבוטל | שלחו Authorization: Bearer $FELO_API_KEY; החליפו את המפתח אם בוטל |
| 402 | INSUFFICIENT_CREDITS | אין מספיק קרדיטים לשירות | טענו ב-Console Billing, ואז נסו שוב |
| 404 | ייחודי לנקודת הקצה | מודל, משימה או מסלול לא מוכרים | בדקו את מזהה המודל או מזהה המשימה ואת נתיב נקודת הקצה |
| 429 | RATE_LIMITED | מגבלת קצב נחצתה | המתינו ל-Retry-After, ואז נסו שוב |
| 5xx | CHAT_FAILED, *_FAILED, SERVICE_UNAVAILABLE | כשל חיצוני או כשל שירות | נסו שוב עם השהיה גדלה; צרו קשר עם התמיכה אם זה נמשך |
מסמכי נקודות הקצה מפרטים את הקודים הייחודיים לאותה נקודת קצה. התחילו עם שגיאות Chat API או עם המסמכים של נקודת הקצה שאליה אתם קוראים.
נקודות קצה ליצירת מודלים
POST /api/v1/images/generations ו-POST /api/v1/videos/generations מחזירים שגיאות ברמת נקודת הקצה במעטפת OpenAI במקום במעטפת שלמעלה:
{
"error": {
"message": "Model kind does not match this generation endpoint",
"type": "invalid_request_error",
"param": null,
"code": "model_kind_mismatch"
}
}מזהה הבקשה נמצא בכותרת התגובה X-Request-Id, לא בגוף. בקשה שנדחתה אינה יוצרת משימה. ברגע שמשימה קיימת, רוב הכשלים מגיעים כסטטוס משימה סופי בתגובת 200 ולא כשגיאת HTTP: בדקו את status עבור failed או interrupted, ואז קראו את error.message. ראו יצירת תמונות ומשימות אסינכרוניות.
מזהי בקשה
גופי שגיאה של Felo כוללים request_id. תעדו אותו בלוג יחד עם נקודת הקצה, סטטוס ה-HTTP, קוד השגיאה, מזהה המודל ומזהה המשימה. לעולם אל תתעדו בלוג את מפתח ה-API המלא.
ה-Model API מקבל גם כותרת בקשה אופציונלית X-Request-Id. כשאתם שולחים אותה, היא מוחזרת אליכם לצורכי אבחון, מה שמאפשר להתאים את הלוגים שלכם לבקשה. אם אינכם שולחים אותה, השתמשו ב-request_id שמוחזר.
מגבלות קצב
/v2/chat היא נקודת הקצה היחידה של Felo עם מגבלות קצב מתועדות ונאכפות:
- לפי מפתח API, חלון של דקה.
- לפי משתמש, חלון של דקה.
- לפי משתמש, חלון של שעה.
משתמשים עם מינוי Felo בתשלום בתוקף, כולל מינויים ארגוניים, פטורים ואינם מקבלים כותרות X-RateLimit-*. אם לא ניתן לאמת את מצב המינוי, המגבלות עדיין חלות.
| כותרת | משמעות |
|---|---|
X-RateLimit-Limit | המגבלה של הממד ההדוק ביותר שפועל כעת |
X-RateLimit-Remaining | המכסה הנותרת המינימלית מבין שלושת הממדים |
X-RateLimit-Reset | חותמת זמן Unix בשניות שבה החלון הנוכחי מתאפס |
Retry-After | בתגובת 429, ההמתנה המומלצת בשניות |
לנקודות קצה אחרות של /v2/** אין כעת מגבלות קצב נאכפות. בקשות Model API יכולות עדיין להיות מוגבלות על ידי הספק החיצוני, והדבר יכול להופיע כ-429.
אל תקבעו מגבלות מספריות בקוד. קראו את הכותרות בכל תגובה.
מדיניות ניסיונות חוזרים
| מצב | לנסות שוב? |
|---|---|
| 400, 401, 402, 404 | לא. תקנו תחילה את הבקשה, את המפתח או את היתרה. |
| 429 | כן, אחרי Retry-After או X-RateLimit-Reset. |
| 5xx, פסקי זמן, איפוסי חיבור | כן, עם השהיה אקספוננציאלית ו-jitter. |
| חיבור סטרימינג שנפל באמצע התגובה | נסו שוב רק אם האפליקציה שלכם יכולה לסבול יצירה כפולה. |
לולאה מומלצת:
- נסו שוב רק בקשות אידמפוטנטיות או בטוחות לחזרה.
- השתמשו בהשהיה אקספוננציאלית: התחילו סביב שנייה, הכפילו, ועצרו ב-30 שניות.
- הוסיפו jitter אקראי כדי שלקוחות לא ינסו שוב בו-זמנית.
- עצרו לאחר מספר קטן של ניסיונות והציגו את השגיאה.
- בתגובת 429, כבדו את
Retry-Afterבמקום את לוח הזמנים שלכם.
רצף איתור בעיות
- בדקו שהמפתח קיים ולא בוטל.
- קראו ל-
GET /api/v1/modelsעם אותו מפתח כדי לאשר את האימות. - שלחו את הבקשה החוקית הקטנה ביותר לנקודת הקצה המיועדת.
- הוסיפו סטרימינג, כלים או קלטים גדולים אחד בכל פעם.
- בעבודה אסינכרונית, בדקו את מצב המשימה לפני שליחה מחדש.