OpenAI מחזיר 503 בערך פעם בכמה שבועות—בזמן עומס שיא או תקלות. עבור אפליקציית מובייל שבה עוזר AI הוא חלק מזרימת המשתמש המרכזית, זה אומר מסך לבן או קריסה אם לא הוכנה חלופת גיבוי מראש. בתרחישים כאלה, תור בקשות מצטבר, זמן האחזור גדל, ומשתמשים נוטשים. כדי להימנע מכך, אנו מתכננים מפל השפלה: ניסיון חוזר עם השהיה אקספוננציאלית, ולאחר מכן מעבר לשירות AI חלופי כמו Anthropic Claude או Google Gemini. הפתרונות שלנו הוכחו בפרויקטים עם קהל של מיליון משתמשים. אם עוזר ה-AI שלך הוא פונקציונליות מפתח, לוגיקת גיבוי היא חיונית. זמן השבתה ממוצע יורד מ-3 שעות ל-5 דקות, וחוסך לעסק עד $5,000 בחודש. עלויות התמיכה מופחתות ב-30% הודות לשחזור אוטומטי.
הבעיה: שירות AI לא זמין
התקלות מגוונות: עומס על הספק, בעיות רשת, מגבלות קצב. ללא גיבוי, המשתמש נתקל בשגיאה או בטעינה אינסופית. התוצאה היא ירידה בשימור משתמשים וביקורות שליליות. דפוסי ניסיון חוזר ו-מפסק מעגל הם קו הבסיס, אבל לתרחישים קריטיים יש צורך במפל.
איך עובד מפל ההשפלה?
גיבוי נכון אינו מנגנון יחיד אלא מספר רמות, שכל אחת מופעלת כאשר הקודמת נכשלת.
רמה 1: ניסיון חוזר עם השהיה. שגיאות חולפות (429 Rate Limit, 503, פסק זמן) מנוסות שוב עם השהיה אקספוננציאלית. שלושה ניסיונות: אחרי 1 שנייה, 3 שניות, 9 שניות. אם כל השלושה נכשלים, עוברים לרמה 2.
רמה 2: החלפת ספק. אם הספק הראשי הוא OpenAI, גיבוי ל-Anthropic Claude API או Google Gemini. התגובות שונות בסגנון, אבל האיכות דומה לרוב המשימות. מפתחות לספקי גיבוי מאוחסנים בתצורת השרת.
רמה 3: מודל מקומי. לזרימות קריטיות, מודל מקומי קטן (Phi-3.5-mini דרך llama.cpp, ~2.2 GB). האיכות נמוכה מ-GPT-4o אבל עובד במצב לא מקוון. ב-iOS, הרצה דרך MLModel או llama.swift.
רמה 4: תגובות סטטיות. שאלות נפוצות ותשובות ממטמון או מסד נתונים. המשתמש מקבל תשובה שימושית מבלי לדעת שה-AI אינו זמין.
טבלת השוואת רמות השפלה
| רמה | זמן אחזור | איכות | עלות לביצוע |
|---|---|---|---|
| ניסיון חוזר | ~13 שניות | מלאה | חינם |
| החלפת ספק | ~1 שנייה | 90-95% | קריאות API |
| מודל מקומי | ~2 שניות | 70-80% | אנרגיית מכשיר |
| תגובות סטטיות | <100 אלפיות שנייה | מדויק רק לשאלות נפוצות | אפס |
למה מפסק מעגל הוא דפוס חובה?
דפוס מפסק המעגל מונע עומס מדורג על שירות מתדרדר. הוא מהיר יותר מניסיון חוזר פשוט וחוסך משאבי לקוח ושרת.
// Android — Kotlin class AIServiceCircuitBreaker {
private var failureCount = 0
private var lastFailureTime = 0L
private val failureThreshold = 5
private val resetTimeout = 60_000L // 1 минута
enum class State {
CLOSED, OPEN, HALF_OPEN
}
var state = State.CLOSED
fun canCall(): Boolean = when (state) {
State.CLOSED -> true
State.OPEN -> {
if (System.currentTimeMillis() - lastFailureTime > resetTimeout) {
state = State.HALF_OPEN
true
} else false
}
State.HALF_OPEN -> true
}
fun recordSuccess() {
failureCount = 0
state = State.CLOSED
}
fun recordFailure() {
failureCount++
lastFailureTime = System.currentTimeMillis()
if (failureCount >= failureThreshold) state = State.OPEN
}
} דוגמת יישום מפסק מעגל ב-iOS (Swift)
enum CircuitBreakerState {
case closed, open, halfOpen
}
class CircuitBreaker {
private var state: CircuitBreakerState = .closed
private var failureCount = 0
private let threshold = 5
private let timeout: TimeInterval = 60
private var lastFailure: Date?
func canCall() -> Bool {
switch state {
case .closed:
return true
case .open:
if let lastFailure = lastFailure, Date().timeIntervalSince(lastFailure) > timeout {
state = .halfOpen
return true
}
return false
case .halfOpen:
return true
}
}
func recordSuccess() {
failureCount = 0
state = .closed
}
func recordFailure() {
failureCount += 1
lastFailure = Date()
if failureCount >= threshold {
state = .open
}
}
} השוואת אסטרטגיות ניסיון חוזר
| אסטרטגיה | המתנה בין ניסיונות | מספר ניסיונות | מקרה שימוש |
|---|---|---|---|
| קבועה | 5 שניות | 3 | עומס נמוך |
| אקספוננציאלית | 1 שנייה, 3 שניות, 9 שניות | 3-5 | שגיאות חולפות |
| Jitter | 1-5 שניות (אקראי) | 3-5 | Rate Limit |
איך עובדות תגובות סטטיות?
תגובות סטטיות הן הודעות שהוכנו מראש לשאלות נפוצות. הן מאוחסנות כזוגות מפתח-ערך במסד נתונים מקומי או במטמון. כאשר כל הרמות הגבוהות אינן זמינות, המערכת מחזירה את התגובה הרלוונטית ביותר על סמך ניתוח שאילתה (למשל, TF‑IDF). זה מבטיח תשובה מיידית ללא רשת.
איך לבדוק לוגיקת גיבוי?
אנו משתמשים בבדיקות אינטגרציה המדמות שגיאת 503 מהספק הראשי. אנו מוודאים מעבר לגיבוי, רישום נכון של רמות השפלה, וחוויית משתמש ללא הודעות שגיאה טכניות. בדיקות אלה רצות ב-CI עם כל commit.
תוכנית יישום גיבוי שלב אחר שלב
- ניתוח המחסנית הנוכחית והאינטגרציה עם ספקי AI—זיהוי נקודות כשל.
- תכנון מפל השפלה (ניסיון חוזר, מפסק מעגל, החלפת ספק, מודל מקומי).
- יישום ניסיון חוזר עם השהיה אקספוננציאלית ו-Jitter בלקוח.
- יישום מפסק מעגל עם ספי כשל.
- חיבור ספק גיבוי ומודל מקומי.
- פיתוח תגובות סטטיות לשאילתות תכופות.
- כתיבת בדיקות יחידה ואינטגרציה לכל רמה.
- תיעוד לוגיקת הגיבוי והניטור.
- מתן הוראות להוספת ספקים חדשים.
- הצעת תמיכה לאחר פריסה (חודש אחד).
חוויית משתמש במהלך השפלה
המשתמש לעולם לא צריך לראות שגיאות טכניות. בעת מעבר לתגובות סטטיות, הצג ממשק רגיל ללא תיוג. כאשר השירות אינו זמין לחלוטין, הצג "העוזר אינו זמין זמנית, אנא נסה שוב בעוד מספר דקות" במקום // Android — Kotlin class AIServiceCircuitBreaker { private var failureCount = 0 private var lastFailureTime = 0L private val failureThreshold = 5 private val resetTimeout = 60_000L // 1 минута enum class State { CLOSED, OPEN, HALF_OPEN } var state = State.CLOSED fun canCall(): Boolean = when (state) { State.CLOSED -> true State.OPEN -> { if (System.currentTimeMillis() - lastFailureTime > resetTimeout) { state = State.HALF_OPEN true } else false } State.HALF_OPEN -> true } fun recordSuccess() { failureCount = 0 state = State.CLOSED } fun recordFailure() { failureCount++ lastFailureTime = System.currentTimeMillis() if (failureCount >= failureThreshold) state = State.OPEN } } גולמי.
מחוון השפלה שימושי לאנליטיקה פנימית: רשום כל גיבוי עם רמה וסיבה. זה עוזר לזהות ספקים בעייתיים ולשפר יציבות.
מה כלול בעבודה
- ניתוח המחסנית הנוכחית והאינטגרציה עם ספקי AI
- תכנון ויישום מפל השפלה (ניסיון חוזר, מפסק מעגל, החלפת ספק, מודל מקומי)
- הגדרת תגובות סטטיות ומטמון
- כתיבת בדיקות יחידה ואינטגרציה
- תיעוד לוגיקת הגיבוי והניטור
- הוראות להוספת ספקים חדשים
- תמיכה לאחר פריסה (חודש אחד)
הערכות זמנים
ניסיון חוזר בסיסי עם השהיה — יום אחד. מפל מלא עם מפסק מעגל ושני ספקים — 2–3 ימים. נספק הערכה מדויקת לאחר ייעוץ.
המדדים שלנו
5+ שנים בפיתוח מובייל, 50+ פרויקטים עם אינטגרציית AI, מהנדסים מוסמכים (iOS, Android, Flutter). אחריות על הפונקציונליות המיושמת. הזמינו ביקורת על מחסנית ה-AI הנוכחית שלכם—נמצא נקודות חולשה. קבלו ייעוץ על תכנון סובלנות תקלות. צרו קשר להערכת פרויקט.







