דלג לתוכן הראשי

צמתי לוגיקה

צמתי לוגיקה שולטים בזרימת ה-workflow. הם מאפשרים ליצור הסתעפויות לפי תנאים, לאכוף rate limits ולסיים במפורש מסלולי הרצה.

logic.switch

הסתעפות דטרמיניסטית על בסיס תנאים. צומת Switch בודק קבוצת תנאים ומנתב את ההרצה למסלול המתאים. אפשר לחשוב עליו כסדרה של בדיקות if/else-if עם fallback ברירת מחדל.

קונפיגורציה

OptionTypeRequiredDescription
conditionsarrayYesרשימת אובייקטים של תנאים, כל אחד עם field, operator ו-value
conditions[].fieldstringYesשדה ההקשר שנבדק, למשל message.text, contact.tags, contact.language
conditions[].operatorstringYesאופרטור השוואה: equals, contains, starts_with, ends_with, gt, lt, in, not_equals
conditions[].valuestringYesהערך להשוואה
conditions[].labelstringYesתווית קריאה למסלול, כפי שתופיע על ידית היציאה

Outputs

כל תנאי יוצר ידית יציאה מסומנת, ובנוסף יש ידית default עבור הודעות שלא התאימו לשום תנאי.
OutputDescription
[condition label]ידית אחת לכל תנאי, מופעלת כאשר אותו תנאי מתקיים
defaultמופעלת כאשר אף תנאי לא מתקיים

Connections

  • Inputs: ידית כניסה אחת מהצומת הקודם
  • Outputs: ידית אחת לכל תנאי ועוד ידית default

דוגמת שימוש

אחרי ש-AI Router מסווג הודעה כ-”billing”, “support” או “sales”, אפשר להשתמש ב-Switch כדי לנתב כל קטגוריה לצומת AI Respond אחר עם system prompt ייעודי. מסלול ה-default יכול להוביל לתשובת עזרה כללית.

logic.rate_limit

מניעת ספאם ובקרת עלויות באמצעות Redis counters. צומת Rate Limit עוקב אחרי תדירות ההודעות וחוסם עיבוד כאשר עוברים את הסף. כך אפשר להגן על תקציב הטוקנים של ה-AI ולמנוע ניצול לרעה.

קונפיגורציה

OptionTypeRequiredDescription
maxCountnumberYesמספר האירועים המרבי המותר בתוך חלון הזמן
windowSecondsnumberYesחלון הזמן בשניות, למשל 3600 עבור שעה
scopestringYesטווח ההגבלה: per-contact עבור איש קשר בודד, או per-tenant עבור כל ה-workspace

Outputs

OutputDescription
allowedהבקשה נמצאת בתוך מגבלת הקצב ויכולה להמשיך
rate_limitedהבקשה חרגה מהמגבלה וצריך לטפל בה בהתאם

Connections

  • Inputs: ידית כניסה אחת מהצומת הקודם
  • Outputs: שתי ידיות, allowed ו-rate_limited

דוגמת שימוש

מקמו את Rate Limit מיד אחרי ה-trigger כדי להגביל כל contact ל-20 הודעות בשעה. חברו את allowed לזרימת ה-AI, ואת rate_limited להודעה מנומסת שמבקשת להאט או אל logic.end.
Rate limits משתמשים ב-Redis atomic counters, ולכן הם עובדים נכון גם תחת מקביליות גבוהה כאשר כמה workers מעבדים הודעות בו-זמנית.

logic.end

סיום מפורש של workflow run. צומת End עוצר את ההרצה של המסלול הנוכחי. משתמשים בו כדי לסיים בצורה נקייה מסלולים שלא דורשים עוד עיבוד.

קונפיגורציה

אין אפשרויות קונפיגורציה. הצומת רק מסמן את סוף המסלול.

Outputs

אין. זהו צומת סופי.

Connections

  • Inputs: ידית כניסה אחת מהצומת הקודם
  • Outputs: אין, זהו צומת טרמינלי

דוגמת שימוש

במסלול ה-default של Switch שבו אף תנאי לא התקיים ולא צריך להשיב, אפשר לחבר אל End כדי לסיים במפורש את ההרצה. זה שימושי גם אחרי מסלול rate-limited שבו לא רוצים לשלוח הודעה בחזרה.