בדף הזה מוסבר איך לעבור מ-SDK ללקוח מסוג Google AI ל-SDK ללקוח מסוג Vertex AI in Firebase באפליקציות לנייד או לאינטרנט. ערכות ה-SDK של Vertex AI in Firebase זמינות לפלטפורמות של Apple (Swift), Android (Kotlin ו-Java), אינטרנט (JavaScript) ו-Flutter (Dart).
למה כדאי לעבור לשימוש ב-Vertex AI?
יכול להיות שניסיתם גרסה חלופית של Gemini API באמצעות Google AI Studio או ערכות ה-SDK של לקוחות Google AI. ערכות ה-SDK האלה יכולות לעזור לכם להתחיל להשתמש ב-Gemini API וליצור את אב הטיפוס. עם זאת, באפליקציות לנייד ולאינטרנט בייצור או בארגון שמבצעות קריאה ישירה ל-Gemini API בצד הלקוח, מומלץ מאוד להשתמש ב-Firebase SDK כדי לבצע קריאה ל-Vertex AI Gemini API.
תכונות אבטחה לאפליקציות לנייד ולאינטרנט
באפליקציות לנייד ולאינטרנט, האבטחה קריטית וצריך להביא בחשבון גורמים מיוחדים כי הקוד (כולל קריאות ל-Gemini API) פועל בסביבה לא מוגנת.
כברירת מחדל, הרשאת ה-Vertex AI Gemini API ניתנת על ידי Google Cloud IAM (ולא על ידי מפתח API כמו Google AI Gemini API). ערכות ה-SDK של Vertex AI in Firebase תוכננו לבצע קריאה ל-Vertex AI Gemini API המאובטח יותר.
באפליקציות לנייד ולאינטרנט, צריך להגן על Gemini API ועל משאבי הפרויקט (כמו מודלים מותאמים) מפני ניצול לרעה על ידי לקוחות לא מורשים. אפשר להשתמש ב-Firebase App Check כדי לוודא שכל הקריאות ל-API מגיעות מהאפליקציה בפועל. התכונה הזו זמינה רק אם משתמשים ב-SDKs של Vertex AI in Firebase.
סביבה עסקית שמתאימה לאפליקציות לנייד ולאינטרנט
Firebase היא הפלטפורמה של Google לפיתוח אפליקציות לנייד ולאינטרנט. המשמעות של שימוש בערכות ה-SDK של Vertex AI in Firebase היא שהאפליקציות שלכם פועלות בסביבה עסקית שמתמקדת בצרכים של מפתחים ואפליקציות סטאק מלא. לדוגמה, תוכלו לבצע את הפעולות הבאות ועוד הרבה יותר:
אפשר להשתמש ב-Cloud Storage for Firebase כדי לכלול קבצים גדולים בבקשות עם מודלים מרובים. בנוסף, כדאי להשתמש ב-SDK ללקוח שמטפל בהעלאות ובהורדות של קבצים (גם בתנאים של רשת חלשה) ומספק אבטחה טובה יותר לנתונים של משתמשי הקצה. מידע נוסף מופיע במדריך הפתרונות שלנו לשימוש ב-Cloud Storage for Firebase.
ניהול נתונים מובְנים באמצעות ערכות SDK של מסדי נתונים שנוצרו לאפליקציות לנייד ולאפליקציות אינטרנט (כמו Cloud Firestore).
להגדיר באופן דינמי הגדרות זמן ריצה (כמו מיקום) או להחליף ערכים באפליקציה (כמו שם של מודל) בלי לפרסם גרסת אפליקציה חדשה באמצעות Firebase Remote Config.
יתרונות נוספים של שימוש ב-Vertex AI מ-Google Cloud
ככל שהשימוש שלכם בבינה מלאכותית גנרטיבית באפליקציות ובתהליכי העבודה שלכם יתפתח, יכול להיות שתצטרכו פלטפורמה שמציעה פתרונות מקצה לקצה לפיתוח ולפריסה של אפליקציות בינה מלאכותית גנרטיבית. ב-Google Cloud יש סביבה עסקית מקיפה של כלים שמאפשרים לכם לנצל את מלוא הפוטנציאל של בינה מלאכותית גנרטיבית, החל מהשלבים הראשוניים של פיתוח האפליקציה ועד לפריסה, לאירוח ולניהול של נתונים מורכבים בקנה מידה נרחב.
פלטפורמת Vertex AI של Google Cloud כוללת חבילה של כלים ל-MLOps שמאפשרים לייעל את השימוש, הפריסה והמעקב אחרי מודלים של AI, כדי לשפר את היעילות והאמינות שלהם. בנוסף, השילובים עם מסדי נתונים, כלי DevOps, רישום ביומן, מעקב ו-IAM מספקים גישה מקיפה לניהול כל מחזור החיים של ה-AI הגנרטיבי.
מידע נוסף על תרחישים לדוגמה של Vertex AI זמין במסמכי התיעוד של Google Cloud.
מעבר ל-SDKs של Vertex AI in Firebase
כדי לעבור ל-SDK של Vertex AI in Firebase, צריך לבצע שלושה שלבים עיקריים:
מגדירים פרויקט Firebase חדש או קיים ומקשרים את האפליקציה ל-Firebase.
להעביר את קוד המקור. לשם כך צריך לשנות רק את ה-SDK ואת קוד ההפעלה (כולל שם המודל). אין צורך לבצע שינויים בקוד שמפעיל בפועל את Gemini API.
מוחקים מפתחות API שלא בשימוש ומשביתים ממשקי API שלא בשימוש.
שלב 1: מגדירים פרויקט Firebase ומקשרים את האפליקציה ל-Firebase
גם אם אתם כבר מכירים את Firebase, כדאי לעיין בקטע הזה כדי לוודא שהפרויקט והאפליקציה ב-Firebase מוגדרים לשימוש ב-SDKs של Vertex AI in Firebase.
שלב 2: העברת בסיס הקוד
כדי לראות הוראות ספציפיות לפלטפורמה, צריך לבחור את הפלטפורמה של האפליקציה.
ערכות ה-SDK Google AI וערכות ה-SDK Vertex AI in Firebase פותחו כדי שהמעבר בין שתי הפלטפורמות יהיה פשוט ככל האפשר.
כדי לבצע את ההעברה, צריך רק לשנות את ערכת ה-SDK שמשלבים ב-codebase של האפליקציה ואת האימפריסאליזציה של השירות והמודל הגנרטיבי. אין צורך לשנות את הקוד שמפעיל את Gemini API.
שינוי ה-SDK
Google AI
Kotlin+KTX
dependencies {
// ... other androidx dependencies
// add the dependency for the Google AI client SDK for Android
implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}
Java
dependencies {
// ... other androidx dependencies
// add the dependency for the Google AI client SDK for Android
implementation("com.google.ai.client.generativeai:generativeai:VERSION")
// Required for one-shot operations (to use `ListenableFuture` from Reactive Streams)
implementation("com.google.guava:guava:31.0.1-android")
// Required for streaming operations (to use `Publisher` from Guava Android)
implementation("org.reactivestreams:reactive-streams:1.0.4")
}
Vertex AI in Firebase
Kotlin+KTX
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI in Firebase SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.2")
}
Java
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI in Firebase SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.2")
// Required for one-shot operations (to use `ListenableFuture` from Guava Android)
implementation("com.google.guava:guava:31.0.1-android")
// Required for streaming operations (to use `Publisher` from Reactive Streams)
implementation("org.reactivestreams:reactive-streams:1.0.4")
}
שינוי האתחול
Google AI
Kotlin+KTX
val generativeModel = GenerativeModel(modelName = "MODEL_NAME",
// Access your API key as a Build Configuration variable
apiKey = BuildConfig.apiKey
)
Java
GenerativeModel gm = new GenerativeModel("MODEL_NAME",
// Access your API key as a Build Configuration variable
BuildConfig.apiKey
);
// Use the GenerativeModelFutures Java compatibility layer which offers support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
Vertex AI in Firebase
Kotlin+KTX
val generativeModel = Firebase.vertexAI.generativeModel("MODEL_NAME")
Java
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("MODEL_NAME");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
עדכון ייבוא
קטעי הקוד הבאים משתמשים במחלקות Chat
, Content
ו-GenerativeModelFutures
כדוגמאות, אבל אותם קטעי הקוד צריכים לחול על מחלקות אחרות עם אותו שם חבילה.
Google AI
Kotlin+KTX
import com.google.ai.client.generativeai.Chat
import com.google.ai.client.generativeai.type.Content
import com.google.ai.client.generativeai.java.GenerativeModuleFutures
Java
import com.google.ai.client.generativeai.Chat;
import com.google.ai.client.generativeai.type.Content;
import com.google.ai.client.generativeai.java.GenerativeModuleFutures;
Vertex AI in Firebase
Kotlin+KTX
import com.google.firebase.vertexai.Chat
import com.google.firebase.vertexai.type.Content
import com.google.firebase.vertexai.java.GenerativeModuleFutures
Java
import com.google.firebase.vertexai.Chat;
import com.google.firebase.vertexai.type.Content;
import com.google.firebase.vertexai.java.GenerativeModuleFutures;
שלב 3: מוחקים מפתחות API שלא בשימוש ומשביתים ממשקי API שלא בשימוש
אם אתם לא צריכים יותר להשתמש במפתח ה-API Google AI, כדאי לפעול לפי השיטות המומלצות בנושא אבטחה ולמחוק אותו. אפשר להציג ולמחוק את מפתחות ה-API של Google AI בקטע API keys בדף Google AI Studio.
בנוסף, אם אתם כבר לא משתמשים ב-Google AI Gemini API, תוכלו להשבית אותו בפרויקט. אפשר לעשות זאת במסוף Google Cloud, דרך הדף Generative Language API (generativelanguage.googleapis.com
). ('Generative Language API' הוא השם הרשמי של ה-Google AI Gemini API).
מה עוד אפשר לעשות?
- גם Google AI וגם Vertex AI מציעים 'מגרש משחקים' של ממשק משתמש אינטרנט שנקרא 'AI Studio', שבו אפשר להתנסות בהנחיות ובפרמטרים של מודלים. במסמכי העזרה של Google Cloud מוסבר איך להעביר את ההנחיות של Google AI Studio אל Vertex AI Studio.