הוספת קבצים גדולים לבקשות עם מודלים מרובים לזיהוי (multimodal) וניהול קבצים באמצעות Cloud Storage for Firebase

כששולחים קריאה ל-Gemini API מהאפליקציה באמצעות SDK של Vertex AI in Firebase, אפשר להנחות את המודל של Gemini ליצור טקסט על סמך קלט מרובה מצבים. הנחיות לכמה שיטות יכולות לכלול שיטות (או סוגי קלט), כמו טקסט יחד עם תמונות, קובצי PDF, וידאו ואודיו.

בחלקים שאינם טקסט של הקלט (כמו קובצי מדיה), אפשר להשתמש ב-Cloud Storage for Firebase כדי לכלול קבצים בבקשה. באופן כללי, זה מה שצריך לדעת על התכונה הזו:

  • אפשר להשתמש ב-Cloud Storage for Firebase בכל בקשה עם כמה מודלים (כמו יצירת טקסט וצ'אט). בדוגמאות במדריך הזה מוצגת קלט בסיסי של טקסט ותמונה.

  • צריך לציין את סוג ה-MIME של הקובץ ואת כתובת ה-URL‏ Cloud Storage for Firebase שלו (שתמיד מתחילה ב-gs://) בקלט הבקשה. הערכים האלה מוקצים באופן אוטומטי לכל קובץ שהועלה לקטגוריית Cloud Storage.

  • צריך להשתמש בסוג קובץ וכתובת URL נתמכים.


במדריך הפתרונות הזה מוסבר איך מגדירים את Cloud Storage for Firebase, מעלים קובץ לקטגוריה של Cloud Storage for Firebase מהאפליקציה ואז כוללים את סוג ה-MIME של הקובץ ואת כתובת ה-URL Cloud Storage for Firebase של הקובץ בבקשה מרובה-המצבים אל Gemini API.

רוצה לראות את דוגמאות הקוד? או שכבר הגדרתם את Cloud Storage for Firebase, ואתם מוכנים להתחיל להשתמש בו בבקשות מרובות מצבים?

מעבר לדוגמאות הקוד

למה כדאי להשתמש ב-Cloud Storage for Firebase באפליקציה?

Cloud Storage for Firebase משתמש באותה תשתית מהירה, מאובטחת וניתנת להתאמה כמו Google Cloud Storage לאחסון blobs וקובצי, וערכות ה-SDK של הלקוח שלו מיועדות במיוחד לאפליקציות לנייד ולאינטרנט.

ב-SDK של Vertex AI in Firebase, גודל הבקשה המקסימלי הוא 20MB. אם הבקשה גדולה מדי, תקבלו שגיאת HTTP 413. אם גודל הקובץ יגרום לכך שגודל הבקשה הכולל יהיה גדול מ-20MB, אז צריך להשתמש בכתובת URL Cloud Storage for Firebase כדי לכלול את הקובץ בבקשה מרובת-המצבים. עם זאת, אם הקובץ קטן, בדרך כלל אפשר להעביר אותו ישירות כנתונים בקוד (עם זאת, חשוב לזכור שקובץ שסופק כנתונים בקוד מקודד ל-base64 במעבר, וכך גדל גודל הבקשה).

אלה כמה יתרונות נוספים של השימוש ב-Cloud Storage for Firebase:

  • אפשר לבקש ממשתמשי הקצה להעלות תמונות ישירות מהאפליקציה לקטגוריה של Cloud Storage for Firebase, ואז לכלול את התמונות האלה בהנחיות שנשלחות במגוון שיטות פשוט על ידי ציון סוג ה-MIME של הקובץ וכתובת ה-URL של Cloud Storage for Firebase (שהן מזהה של הקובץ).

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

    • אם יש הפרעה להעלאה או להורדה של קובץ, ערכות ה-SDK של Cloud Storage for Firebase מתחילות מחדש את הפעולה באופן אוטומטי מהמקום שבו היא נעצרה.
    • אפשר להשתמש באותו קובץ שהועלו כמה פעמים, בלי שמשתמש הקצה יצטרך להעלות את אותו קובץ בכל פעם שהוא נדרש באפליקציה (למשל, בבקשה חדשה עם כמה שיטות להזנת נתונים).
  • אפשר להגביל את הגישה של משתמשי הקצה לקבצים שמאוחסנים ב-Cloud Storage for Firebase באמצעות Firebase Security Rules, שמאפשרת רק למשתמש מורשה להעלות, להוריד או למחוק קבצים.

  • אפשר לגשת לקבצים שבקטגוריה מ-Firebase או מ-Google Cloud, וכך לבצע עיבוד בצד השרת, כמו סינון תמונות או המרת קידוד של סרטונים, באמצעות ממשקי ה-API של Google Cloud Storage.

באילו סוגי קבצים וכתובות URL יש תמיכה?

כדי להשתמש בכתובות URL מסוג Cloud Storage for Firebase עם ערכות ה-SDK מסוג Vertex AI in Firebase, אלו הדרישות לגבי קבצים וכתובות URL:

  • כשמשתמשים ב-SDKs של Vertex AI in Firebase, הקובץ צריך לעמוד בדרישות של קובצי קלט לבקשות עם כמה מודלים. זה כולל דרישות כמו סוג MIME וגודל הקובץ.

  • הקובץ צריך להיות מאוחסן בקטגוריה (bucket) מסוג Cloud Storage for Firebase (כלומר, הקטגוריה צריכה להיות נגישה לשירותי Firebase, כמו Firebase Security Rules). אם אתם יכולים לראות את הקטגוריה במסוף Firebase, סימן שמדובר בקטגוריה מסוג Cloud Storage for Firebase.

  • הקטגוריה Cloud Storage for Firebase צריכה להיות באותו פרויקט Firebase שבו רשמתם את האפליקציה.

  • כתובת ה-URL Cloud Storage for Firebase של הקובץ חייבת להתחיל ב-gs://, כך כל כתובות ה-URL של Google Cloud Storage בנויות.

  • כתובת ה-URL של הקובץ לא יכולה להיות כתובת URL של 'דפדפן' (לדוגמה, כתובת ה-URL של תמונה שמוצאים באינטרנט).

בנוסף, ה-Firebase Security Rules של הקטגוריה צריך לאפשר גישה מתאימה לקובץ. לדוגמה:

  • אם יש לכם כללים ציבוריים, כל משתמש או לקוח יכול לגשת לקובץ ולספק את כתובת ה-URL שלו בקריאה באמצעות Vertex AI in Firebase SDK. יש להשתמש בסוגים האלה של כללים רק כדי להתחיל לעבוד ובשלבי האב-טיפוס המוקדמים (אלא אם הקבצים מיועדים להיות קבצים שיהיו נגישים לכולם).

  • אם יש לכם כללים חזקים (מומלץ מאוד), מערכת Firebase תבדוק שלמשתמש או ללקוח שמחוברים לחשבון יש גישה מספקת לקובץ לפני שהיא תאפשר להמשיך את הקריאה עם כתובת ה-URL שצוינה.

שימוש בכתובות URL מסוג Cloud Storage for Firebase עם Vertex AI in Firebase

שלב 1: הגדרת Cloud Storage for Firebase

אלו הן המשימות הראשיות שצריך לבצע:

  1. יוצרים קטגוריה Cloud Storage for Firebase בפרויקט Firebase.

  2. מחילים את הפקודה Firebase Security Rules על הקטגוריה הזו. Firebase Security Rules עוזר לאבטח את הקבצים על ידי הגבלת הגישה למשתמשי קצה מורשים.

  3. צריך להוסיף את ספריית הלקוח של Cloud Storage for Firebase לאפליקציה.

    שימו לב שאפשר לדלג על המשימה הזו, אבל לאחר מכן צריך תמיד לכלול באופן מפורש את סוג MIME ואת ערכי כתובת ה-URL Cloud Storage for Firebase בבקשות מרובות מצבים.

שלב 2: מעלים קובץ לקטגוריה

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

  • סוג MIME: זהו סוג המדיה של הקובץ (לדוגמה, image/png). Cloud Storage for Firebase ינסה לזהות באופן אוטומטי את סוג ה-MIME במהלך ההעלאה ולהחיל את המטא-נתונים על האובייקט שבקטגוריה. עם זאת, אפשר לציין את סוג ה-MIME במהלך ההעלאה.

  • כתובת URL: Cloud Storage for Firebase: זהו מזהה ייחודי של הקובץ. כתובת ה-URL חייבת להתחיל במחרוזת gs://.

שלב 3: הכללת סוג ה-MIME וכתובת ה-URL של הקובץ בבקשה מרובת-אופניים

אחרי שמאחסנים קובץ בקטגוריה Cloud Storage for Firebase, אפשר לכלול את סוג ה-MIME שלו ואת כתובת ה-URL Cloud Storage for Firebase בבקשה מרובת מצבים. חשוב לזכור שבדוגמאות האלה מוצגת בקשת generateContent ללא סטרימינג, אבל אפשר להשתמש גם בכתובות URL מסוג Cloud Storage for Firebase עם סטרימינג וצ'אט.

כדי לכלול את הקובץ בבקשה, אפשר להשתמש באחת מהאפשרויות הבאות:

אפשרות 1: כוללים את סוג ה-MIME ואת כתובת ה-URL באמצעות קובץ עזר של אחסון

האפשרות הזו מתאימה אם העליתם לאחרונה את הקובץ לקטגוריה ואתם רוצים לכלול אותו באופן מיידי (דרך הפניה של Storage) בבקשה לכמה מצבים. בקריאה נדרשים גם סוג ה-MIME וגם כתובת ה-URL של Cloud Storage for Firebase.

אפשרות 2: כוללים את סוג ה-MIME ואת כתובת ה-URL באופן מפורש

משתמשים באפשרות הזו אם אתם יודעים את הערכים של סוג ה-MIME וכתובת ה-URL‏ Cloud Storage for Firebase, ואתם רוצים לכלול אותם במפורש בבקשה הרב-מודאלית. הקריאה מחייבת גם סוג MIME וגם כתובת URL.