כשאתם קוראים ל-Gemini API מהאפליקציה באמצעות SDK של Vertex AI in Firebase, תוכלו לבקש ממודל Gemini ליצור טקסט על סמך קלט רב-מודלי. הנחיות מולטימודיות יכולות לכלול כמה מודלים (או סוגי קלט), כמו טקסט עם תמונות, קובצי PDF, קובצי טקסט רגילים, וידאו ואודיו.
בכל בקשה עם מודלים מרובים, תמיד צריך לציין את הפרטים הבאים:
mimeType
של הקובץ. מידע על סוגי ה-MIME הנתמכים של כל קובץ קלטהקובץ. אפשר לספק את הקובץ כנתונים מוטמעים (כפי שמוצג בדף הזה) או באמצעות כתובת ה-URL או מזהה ה-URI שלו.
כדי לבדוק הנחיות במגוון מישורים ולבצע בהן שינויים, מומלץ להשתמש ב-Vertex AI Studio.
אפשרויות אחרות לעבודה עם Gemini API
אפשר גם להתנסות בגרסה חלופית 'Google AI' של Gemini API
כדי לקבל גישה בחינם (במגבלות ובאזורים שבהם היא זמינה) באמצעות Google AI Studio ו-Google AI SDK ללקוח. צריך להשתמש ב-SDK האלה לצורך יצירת אב טיפוס בלבד באפליקציות לנייד ובאפליקציות אינטרנט.אחרי שתתמצאו באופן שבו פועל Gemini API, תוכלו לעבור ל-Vertex AI in Firebase SDKs (המסמכים האלה) שיש בהם תכונות נוספות רבות שחשובות לאפליקציות לנייד ולאפליקציות אינטרנט, כמו הגנה על ה-API מפני ניצול לרעה באמצעות Firebase App Check ותמיכה בבקשות עם קובצי מדיה גדולים.
אפשר גם להפעיל את Vertex AI Gemini API בצד השרת (למשל באמצעות Python, Node.js או Go)
. משתמשים בערכות ה-SDK של Vertex AI בצד השרת, ב-Firebase Genkit או ב-Firebase Extensions עבור Gemini API.
לפני שמתחילים
אם עדיין לא עשיתם זאת, כדאי לעיין במדריך למתחילים בנושא ערכות ה-SDK של Vertex AI in Firebase. חשוב לוודא שכל הפעולות הבאות בוצעו:
מגדירים פרויקט Firebase חדש או קיים, כולל שימוש בחבילת התמחור Blaze והפעלה של ממשקי ה-API הנדרשים.
קישור האפליקציה ל-Firebase, כולל רישום האפליקציה והוספת הגדרות Firebase לאפליקציה.
מוסיפים את ה-SDK ומפעילים את השירות Vertex AI ואת המודל הגנרטיבי באפליקציה.
אחרי שמחברים את האפליקציה ל-Firebase, מוסיפים את ה-SDK ומפעילים את השירות Vertex AI ואת המודל הגנרטיבי, אפשר לבצע קריאה ל-Gemini API.
יצירת טקסט מטקסט ומתמונה אחת יצירת טקסט מטקסט וממספר תמונות יצירת טקסט מטקסט וסרטון
קובצי מדיה לדוגמה
אם עדיין אין לכם קובצי מדיה, תוכלו להשתמש בקבצים הבאים שזמינים לכולם. מאחר שהקבצים האלה מאוחסנים בקטגוריות שלא נמצאות בפרויקט ב-Firebase, צריך להשתמש בפורמט https://storage.googleapis.com/BUCKET_NAME/PATH/TO/FILE
לכתובת ה-URL.
תמונה:
https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
עם סוג MIME שלimage/jpeg
. הצגה או הורדה של התמונה הזוPDF:
https://storage.googleapis.com/cloud-samples-data/generative-ai/pdf/2403.05530.pdf
עם סוג MIME שלapplication/pdf
. הצגה או הורדה של קובץ ה-PDF הזהוידאו:
https://storage.googleapis.com/cloud-samples-data/video/animals.mp4
עם סוג MIMEvideo/mp4
. לצפייה או להורדה של הסרטון הזהאודיו:
https://storage.googleapis.com/cloud-samples-data/generative-ai/audio/pixel.mp3
עם סוג MIME שלaudio/mp3
. האזנה לאודיו או הורדה שלו
יצירת טקסט מטקסט ומתמונה אחת
לפני שמנסים את הדוגמה הזו, חשוב לוודא שמילאתם את הקטע לפני שמתחילים במדריך הזה.
אפשר להפעיל את Gemini API באמצעות הנחיות במגוון מודלים, שכוללות גם טקסט וגם קובץ יחיד (כמו תמונה, כפי שמוצג בדוגמה הזו). בקריאות האלה, צריך להשתמש במודל שתומך במדיה בהנחיות (כמו Gemini 2.0 Flash).
חשוב לקרוא את הדרישות וההמלצות לגבי קובצי קלט.
בוחרים אם להעביר את התשובה בסטרימינג (generateContentStream
) או להמתין לתשובה עד שהתוצאה כולה נוצרת (generateContent
).
כדי לקבל אינטראקציות מהירות יותר, אפשר לא להמתין לתוצאה המלאה של יצירת המודל, אלא להשתמש בסטרימינג כדי לטפל בתוצאות חלקיות.
בדוגמה הזו מוסבר איך להשתמש ב-generateContentStream()
כדי להעביר (stream) טקסט שנוצר מבקשת הנחיה מרובת-מודולים שכוללת טקסט ותמונה אחת:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image = UIImage(systemName: "bicycle") else { fatalError() }
// Provide a text prompt to include with the image
let prompt = "What's in this picture?"
// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
לחלופין, אפשר להמתין לקבלת התוצאה המלאה במקום להפעיל את הסטרימינג. התוצאה תוחזר רק אחרי שהמודל ישלים את כל תהליך היצירה.
בדוגמה הזו מוסבר איך להשתמש ב-generateContent()
כדי ליצור טקסט מבקשת הנחיה מרובת-מודולים שכוללת טקסט ותמונה אחת:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image = UIImage(systemName: "bicycle") else { fatalError() }
// Provide a text prompt to include with the image
let prompt = "What's in this picture?"
// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image, prompt)
print(response.text ?? "No text in response.")
כאן מוסבר איך בוחרים מודל, ואם רוצים גם מיקום, שמתאימים לתרחיש לדוגמה ולאפליקציה.
יצירת טקסט מטקסט וממספר תמונות
לפני שמנסים את הדוגמה הזו, חשוב לוודא שמילאתם את הקטע לפני שמתחילים במדריך הזה.
אפשר להפעיל את Gemini API באמצעות הנחיות במגוון מודלים, שכוללות גם טקסט וגם כמה קבצים (כמו תמונות, כפי שמוצג בדוגמה הזו). בקריאות האלה, צריך להשתמש במודל שתומך במדיה בהנחיות (כמו Gemini 2.0 Flash).
חשוב לקרוא את הדרישות וההמלצות לגבי קובצי קלט.
בוחרים אם להעביר את התשובה בסטרימינג (generateContentStream
) או להמתין לתשובה עד שהתוצאה כולה נוצרת (generateContent
).
כדי לקבל אינטראקציות מהירות יותר, אפשר לא להמתין לתוצאה המלאה של יצירת המודל, אלא להשתמש בסטרימינג כדי לטפל בתוצאות חלקיות.
בדוגמה הזו מוסבר איך להשתמש ב-generateContentStream()
כדי להעביר (stream) טקסט שנוצר מבקשת הנחיה מרובת-מודולים שכוללת טקסט ומספר תמונות:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }
// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"
// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image1, image2, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
לחלופין, אפשר להמתין לקבלת התוצאה המלאה במקום להשתמש בסטרימינג. התוצאה תוחזר רק אחרי שהמודל ישלים את כל תהליך היצירה.
בדוגמה הזו מוסבר איך להשתמש ב-generateContent()
כדי ליצור טקסט מבקשת הנחיה מרובת-מודולים שכוללת טקסט ומספר תמונות:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }
// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"
// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image1, image2, prompt)
print(response.text ?? "No text in response.")
כאן מוסבר איך בוחרים מודל, ואם רוצים גם מיקום, שמתאימים לתרחיש לדוגמה ולאפליקציה.
יצירת טקסט מטקסט וסרטון
לפני שמנסים את הדוגמה הזו, חשוב לוודא שמילאתם את הקטע לפני שמתחילים במדריך הזה.
אפשר להפעיל את Gemini API באמצעות הנחיות מרובות-מודות שכוללות גם טקסט וגם קובצי וידאו (כמו בדוגמה הזו). בשיחות האלה, צריך להשתמש במודל שתומך במדיה בהנחיות (כמו Gemini 2.0 Flash).
חשוב לקרוא את הדרישות וההמלצות לגבי קובצי קלט.
בוחרים אם להעביר את התשובה בסטרימינג (generateContentStream
) או להמתין לתשובה עד שהתוצאה כולה נוצרת (generateContent
).
כדי לקבל אינטראקציות מהירות יותר, אפשר לא להמתין לתוצאה המלאה של יצירת המודל, אלא להשתמש בסטרימינג כדי לטפל בתוצאות חלקיות.
בדוגמה הזו מוסבר איך להשתמש ב-generateContentStream()
כדי להעביר טקסט שנוצר מבקשת הנחיה מרובת-מודולים שכוללת טקסט וסרטון אחד:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Provide the video as `Data` with the appropriate MIME type
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")
// Provide a text prompt to include with the video
let prompt = "What is in the video?"
// To stream generated text output, call generateContentStream with the text and video
let contentStream = try model.generateContentStream(video, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
לחלופין, אפשר להמתין לקבלת התוצאה המלאה במקום להפעיל את הסטרימינג. התוצאה תוחזר רק אחרי שהמודל ישלים את כל תהליך היצירה.
בדוגמה הזו מוסבר איך משתמשים ב-generateContent()
כדי ליצור טקסט מבקשת הנחיה מרובת-מודולים שכוללת טקסט וסרטון אחד:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Provide the video as `Data` with the appropriate MIME type.
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")
// Provide a text prompt to include with the video
let prompt = "What is in the video?"
// To generate text output, call generateContent with the text and video
let response = try await model.generateContent(video, prompt)
print(response.text ?? "No text in response.")
כאן מוסבר איך בוחרים מודל, ואם רוצים גם מיקום, שמתאימים לתרחיש לדוגמה ולאפליקציה.
דרישות והמלצות לגבי קובצי קלט
במאמר קבצי קלט נתמכים ודרישות ל-Vertex AI Gemini API מוסבר על הנושאים הבאים:
- אפשרויות שונות לשליחת קובץ בבקשה
- סוגי קבצים נתמכים
- סוגי ה-MIME הנתמכים ואופן הציון שלהם
- דרישות ושיטות מומלצות לגבי קבצים ובקשות במגוון מודלים
מה עוד אפשר לעשות?
- כך סופרים אסימונים לפני ששולחים הנחיות ארוכות למודל.
- מגדירים את Cloud Storage for Firebase כדי שתוכלו לכלול קבצים גדולים בבקשות עם מודלים מרובים של קלט, ולקבל פתרון מנוהל יותר לשליחת קבצים בהנחיות. הקבצים יכולים לכלול תמונות, קובצי PDF, סרטונים וקטעי אודיו.
- כדאי להתחיל לחשוב על ההכנות לקראת ההשקה בסביבת הייצור, כולל הגדרת Firebase App Check כדי להגן על ה-Gemini API מפני ניצול לרעה על ידי לקוחות לא מורשים. בנוסף, חשוב לעיין ברשימת המשימות להעברה לייצור.
ניסיון ביכולות אחרות של Gemini API
- ליצור שיחות עם זיכרון (צ'אט).
- יצירת טקסט מהנחיות בטקסט בלבד.
- יצירת פלט מובנה (כמו JSON) גם מהנחיות טקסט וגם מהנחיות מולטימודיאליות.
- משתמשים בקריאה לפונקציה כדי לחבר מודלים גנרטיביים למערכות ולמידע חיצוניים.
איך שולטים ביצירת תוכן
- הסבר על תכנון הנחיות, כולל שיטות מומלצות, אסטרטגיות והנחיות לדוגמה.
- להגדיר את הפרמטרים של המודל, כמו טמפרטורה ואסימונים מקסימליים של פלט (עבור Gemini) או יחס גובה-רוחב ויצירת אנשים (עבור Imagen).
- שימוש בהגדרות הבטיחות כדי לשנות את הסבירות לקבלת תשובות שעשויות להיחשב כמזיקות.
מידע נוסף על המודלים הנתמכים
כאן תוכלו לקרוא מידע נוסף על המודלים הזמינים לתרחישי שימוש שונים, על המכסות ועל התמחור שלהם.שליחת משוב על חוויית השימוש ב-Vertex AI in Firebase