מגבלות שימוש

ממשק Google Chat API הוא שירות משותף, ולכן אנחנו מטילים עליו מכסות ומגבלות כדי לוודא שכל המשתמשים משתמשים בו בצורה הוגנת וכדי להגן על הביצועים הכוללים של Google Workspace.

אם תחרגו ממכסה, תקבלו קוד סטטוס 429: Too many requests‏ HTTP בתשובה. יכול להיות שגם בדיקות נוספות של מגבלת הקצב בשרת העורפי של Chat יגרמו לתגובה שגיאה זהה. אם השגיאה הזו מתרחשת, צריך להשתמש באלגוריתם של השהיה מעריכית לפני ניסיון חוזר ולנסות שוב מאוחר יותר. כל עוד אתם לא חורגים מהמכסות לדקה שמפורטות בטבלאות הבאות, אין הגבלה על מספר הבקשות שאתם יכולים לשלוח ביום.

יכול להיות שסוגים שונים של מכסות יחולו על שיטות של Chat API: מכסות לכל פרויקט, לכל מרחב ולכל משתמש.

מכסות לכל פרויקט

מכסות לכל פרויקט מגבילות את קצב השאילתות לפרויקט בענן ב-Google Cloud, ולכן הן חלות על אפליקציית Chat אחת שקוראת לשיטות ספציפיות של Chat API עבור כל מכסה.

בטבלה הבאה מפורטות מגבלות השאילתות לכל פרויקט. אפשר לראות את המגבלות האלה גם בדף מכסות.

מכסה לכל פרויקט

שיטות של Chat API

מגבלה (לכל 60 שניות)

כתיבות של הודעות בדקה

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

הודעות שנקראו לדקה

spaces.messages.get

spaces.messages.list

3000

מספר הכתיבות בדקה של חברי מועדון

spaces.members.create

spaces.members.delete

300

קריאות בדקה של חברים במועדון

spaces.members.get

spaces.members.list

3000

כתיבות במרחב לדקה

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

קריאות של מקום בדקה

spaces.get

spaces.list

spaces.findDirectMessage

3000

כתיבות של קבצים מצורפים לדקה

media.upload

600

קריאות של קבצים מצורפים בדקה

spaces.messages.attachments.get

media.download

3000

מספר פעולות כתיבה של תגובות באמוג'י לדקה

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

מספר התגובות לדקה

spaces.messages.reactions.list

3000

CustomEmoji writes per minute

customEmojis.create

customEmojis.delete

600

מספר הקראות של סמלי אמוג'י מותאמים אישית בדקה

customEmojis.get

customEmojis.list

3000

כתיבות לקטע בדקה

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

600

קריאות של קטע בדקה

users.sections.list

users.sections.items.list

3000

קריאות של נתוני הזמינות בדקה

users.availability.get

3000

מספר הכתיבות של נתוני הזמינות בדקה

users.availability.update

users.availability.markAsActive

users.availability.markAsAway

users.availability.markAsDoNotDisturb

3000

מכסות לכל מרחב

מכסות לכל מרחב מגבילות את קצב השאילתות במרחב נתון, והן משותפות לכל אפליקציות Chat שפועלות במרחב הזה ומבצעות קריאות לשיטות Chat API שמופיעות בכל מכסה.

בטבלה הבאה מפורטות מגבלות השאילתות לכל מרחב:

מכסה לכל מרחב

שיטות של Chat API

מגבלה (לשנייה)

קריאות לשנייה

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

15

פעולות כתיבה לשנייה

media.upload

spaces.delete

spaces.patch

spaces.messages.create (חלות מגבלות נוספות על webhooks נכנסים)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.delete

1

יצירת כתיבות של תגובות בשנייה

spaces.messages.reactions.create

5

מספר הפעמים שהודעה נכתבת בשנייה בזמן ייבוא נתונים ל-Google Chat

spaces.messages.create

10

מכסות לכל משתמש

מכסות לכל משתמש מגבילות את קצב השאילתות של משתמש ב-Google Chat. השאילתות מתייחסות לכל אפליקציות Chat שמבצעות קריאה לשיטה של Chat API בשם משתמש (באמצעות אימות משתמש).

בטבלה הבאה מפורטות מכסות השאילתות לכל משתמש:

מכסה לכל משתמש

שיטות של Chat API

מגבלה (לשנייה)

כתיבות של סמלי אמוג'י מותאמים אישית בשנייה

customEmojis.create

customEmojis.delete

1

קריאות של סמלי אמוג'י מותאמים אישית בשנייה

customEmojis.get

customEmojis.list

15

פעולות כתיבה לשנייה

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

users.availability.update

users.availability.markAsActive

users.availability.markAsAway

users.availability.markAsDoNotDisturb

1

קריאות לשנייה

users.sections.list

users.sections.items.list

users.availability.get

15

מגבלות שימוש נוספות

תנועה גבוהה של בקשות ל-API שמטרגטת את אותו מרחב יכולה להפעיל מגבלות פנימיות נוספות שלא מוצגות בדף Quotas.

פתרון שגיאות שקשורות למכסת זמן

לגבי כל השגיאות שמבוססות על זמן (מקסימום N בקשות לכל X דקות), מומלץ שהקוד יזהה את החריגה וישתמש בנסיגה אקספוננציאלית קטומה כדי לוודא שהמכשירים לא יוצרים עומס מוגזם.

השהיה מעריכית לפני ניסיון חוזר היא אסטרטגיה סטנדרטית לטיפול בשגיאות באפליקציות רשת. אלגוריתם של השהיה מעריכית לפני ניסיון חוזר (exponential backoff) מבצע ניסיון חוזר של בקשות באמצעות הגדלה אקספוננציאלית של זמני ההמתנה בין הבקשות, עד למשך ההשהיה המקסימלי. אם הבקשות עדיין לא מצליחות, חשוב שההשהיות בין הבקשות יגדלו עם הזמן עד שהבקשה תצליח.

אלגוריתם לדוגמה

אלגוריתם של השהיה מעריכית לפני ניסיון חוזר (exponential backoff) מבצע ניסיון חוזר של בקשות באופן אקספוננציאלי, ומגדיל את זמן ההמתנה בין הניסיונות החוזרים עד למשך ההשהיה המקסימלי. לדוגמה:

  1. שולחים בקשה ל-Google Chat API.
  2. אם הבקשה נכשלת, צריך להמתין ‎1 + random_number_milliseconds‎ שניות ולנסות שוב את הבקשה.
  3. אם הבקשה נכשלת, צריך להמתין ‎2 + random_number_milliseconds‎ שניות ולנסות שוב את הבקשה.
  4. אם הבקשה נכשלת, צריך להמתין ‎4 + random_number_milliseconds‎ שניות ולנסות שוב את הבקשה.
  5. וכך הלאה, עד maximum_backoff פעמים.
  6. ממשיכים להמתין ולנסות שוב עד שמגיעים למספר מקסימלי מסוים של ניסיונות חוזרים, אבל לא מגדילים את תקופת ההמתנה בין הניסיונות החוזרים.

where:

  • זמן ההמתנה הוא min(((2^n)+random_number_milliseconds), maximum_backoff), שבו n גדל ב-1 בכל איטרציה (בקשה).
  • random_number_milliseconds הוא מספר אקראי של אלפיות השנייה שקטן מ-1,000 או שווה לו. כך אפשר להימנע ממקרים שבהם הרבה לקוחות מסונכרנים בגלל מצב מסוים וכולם מנסים לשלוח בקשות בו-זמנית. הערך של random_number_milliseconds מחושב מחדש אחרי כל בקשה לניסיון חוזר.
  • בדרך כלל, maximum_backoff הוא 32 או 64 שניות. הערך המתאים תלוי בתרחיש לדוגמה.

הלקוח יכול להמשיך לנסות שוב אחרי שהגיע לזמן maximum_backoff. ניסיונות חוזרים אחרי הנקודה הזו לא צריכים להמשיך להגדיל את זמן ההשהיה לפני ניסיון חוזר. לדוגמה, אם לקוח משתמש בזמן maximum_backoff של 64 שניות, אחרי שהוא מגיע לערך הזה הוא יכול לנסות שוב כל 64 שניות. בשלב מסוים, צריך למנוע מהלקוחות לנסות שוב ללא הגבלה.

זמן ההמתנה בין ניסיונות חוזרים ומספר הניסיונות החוזרים תלויים בתרחיש לדוגמה ובתנאי הרשת.

בקשה להגדלת מכסה לפרויקט

יכול להיות שתרצו לבקש שינוי במכסות בהתאם לשימוש במשאבים בפרויקט. קריאות ל-API על ידי חשבון שירות נחשבות לשימוש בחשבון יחיד. הגשת בקשה להתאמת המכסה לא מבטיחה שהבקשה תאושר. יכול להיות שיחלפו יותר זמן עד לאישור בקשות להתאמת מכסה שיגרמו לעלייה משמעותית בערך המכסה.

המכסות לא זהות בכל הפרויקטים. ככל שהשימוש שלכם ב-Google Cloud יגדל עם הזמן, יכול להיות שתצטרכו להגדיל את ערכי המכסות. אם צפויה עלייה משמעותית בשימוש, אפשר לבקש התאמות של המכסות מראש בדף Quotas & System Limits (מכסות ומגבלות מערכת) במסוף Google Cloud.

מידע נוסף זמין במקורות המידע הבאים:

מכסות של שרתי MCP ב-Chat

שרת ה-MCP של הצ'אט משתמש במדד של הקצאת עלויות של שאילתות. בטבלאות הבאות מפורטת עלות השאילתה לכל שיטה של שרת Chat MCP לפי קטע:

מכסות של Chat MCP

יש שני סוגים של מכסות:

  • לדקה לכל פרויקט בענן: זו העלות של השאילתה לפרויקט ב-Google Cloud למשך דקה אחת.

  • לדקה לכל משתמש לכל פרויקט: זו העלות של שאילתה לפרויקט בענן ב-Google Cloud למשך דקה אחת שכל משתמש יכול להשתמש בה. המטרה של המגבלה הזו היא לעזור לכם לוודא שהשימוש יתחלק בצורה הוגנת בין המשתמשים.

בטבלה הבאה מפורטות המכסות האלה:

סוג מכסת השימוש עלות שאילתה
לדקה לכל פרויקט 3,000
לדקה לכל משתמש לכל פרויקט 300

ערכות כלים של MCP ל-Chat

בטבלה הבאה מפורטות עלויות השאילתות לכל chatmcp.googleapis.comערכת כלים:

נקודת קצה

כלי

עלות שאילתה

/mcp/v1

list_messages

1

search_conversations

10

search_messages

10

send_message

10

מידע נוסף זמין במאמר Chat MCP API Reference.