הבנת תמונות

אתם יכולים להוסיף תמונות לבקשות מ-Gemini כדי לבצע משימות שכוללות הבנה של התוכן בתמונות. בדף הזה מוסבר איך להוסיף תמונות לבקשות ל-Gemini ב-Vertex AI באמצעות מסוףGoogle Cloud Vertex AI API.

מודלים נתמכים

בטבלה הבאה מפורטים המודלים שתומכים בהבנת תמונות:

מודלים פרטי מדיה סוגי MIME
  • מספר התמונות המקסימלי לכל הנחיה: 6
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: אין הגבלה
  • הגודל המקסימלי של כל קובץ מ-Google Cloud Storage: אין הגבלה
  • מספר התמונות המקסימלי שניתן ליצור לכל הנחיה: לא רלוונטי
  • image/png
  • image/jpeg
  • מספר התמונות המקסימלי לכל הנחיה: 3,000
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • טוקנים של רזולוציית ברירת מחדל: ‫1120
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 3,000
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר התמונות המקסימלי לפלט לכל הנחיה: 10
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 14
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר התמונות המקסימלי לכל הנחיה: מוגבל ל-32,768 טוקנים של פלט
  • יחסי הגובה-רוחב הנתמכים: ‫1:1,‏ 3:2,‏ 2:3,‏ 3:4,‏ 4:1,‏ 4:3,‏ 4:5,‏ 5:4,‏ 8:1,‏ 9:16,‏ 16:9 ו-21:9
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 14
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר התמונות המקסימלי לכל הנחיה: מוגבל ל-32,768 טוקנים של פלט
  • יחסי גובה-רוחב נתמכים: 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, and 21:9
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 3,000
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 3
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר התמונות המקסימלי לפלט לכל הנחיה: 10
  • יחסי גובה-רוחב נתמכים: 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, and 21:9
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 3,000
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר הטוקנים המקסימלי לדקה (TPM):
    • רזולוציית מדיה גבוהה/בינונית/ברירת מחדל:
      • ארה"ב/אסיה: ‫6.7 מיליון
      • האיחוד האירופי: 2.6 מיליון
    • רזולוציית מדיה נמוכה:
      • ארה"ב/אסיה: ‫2.6 מיליון
      • האיחוד האירופי: 2.6 מיליון
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 3,000
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר הטוקנים המקסימלי לדקה (TPM) לכל פרויקט:
    • רזולוציית מדיה גבוהה/בינונית/ברירת מחדל:
      • ארה"ב/אסיה: 40 מיליון
      • EU: 10 M
    • רזולוציית מדיה נמוכה:
      • ארה"ב/אסיה: ‫10 מ'
      • האיחוד האירופי: 2.6 מיליון
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

רשימת השפות שנתמכות במודלים של Gemini מופיעה במידע על המודלים מודלים של Google. מידע נוסף על עיצוב הנחיות ל-multimodal אם אתם מחפשים דרך להשתמש ב-Gemini ישירות מהאפליקציות לנייד ומאפליקציות האינטרנט שלכם, כדאי לעיין בערכות ה-SDK של Firebase AI Logic ללקוחות לאפליקציות Swift,‏ Android,‏ Web,‏ Flutter ו-Unity.

הוספת תמונות לבקשה

אתם יכולים להוסיף תמונה אחת או כמה תמונות לבקשה שלכם מ-Gemini.

תמונה יחידה

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

המסוף

כדי לשלוח הנחיה מולטימודלית באמצעות מסוף Google Cloud :

  1. בקטע Vertex AI במסוף Google Cloud , עוברים לדף Vertex AI Studio.

    מעבר אל Vertex AI Studio

  2. לוחצים על פתיחת טופס חופשי.

  3. אופציונלי: מגדירים את המודל והפרמטרים:

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

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

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

      1.0 הוא ערך הטמפרטורה המומלץ להתחלה.

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

      מספר האסימונים המקסימלי שאפשר ליצור בתשובה. טוקן הוא בערך ארבעה תווים. ‫100 טוקנים תואמים בערך ל-60 עד 80 מילים.

      כדי לקבל תשובות קצרות יותר, מציינים ערך נמוך יותר, וכדי לקבל תשובות ארוכות יותר, מציינים ערך גבוה יותר.

    • הוספת רצף עצירות: אופציונלי. מזינים רצף עצירה, שהוא סדרה של תווים שכוללת רווחים. אם המודל נתקל ברצף עצירה, יצירת התשובה נפסקת. רצף העצירות לא נכלל בתגובה, ואפשר להוסיף עד חמישה רצפי עצירות.

  4. אופציונלי: כדי להגדיר פרמטרים מתקדמים, לוחצים על מתקדם ומגדירים את הפרמטרים הבאים:

    לוחצים כדי להרחיב את ההגדרות המתקדמות

    • Top-K: השתמשו בפס ההזזה או בתיבת הטקסט כדי להזין ערך ל-Top-K. (לא נתמך ב-Gemini 1.5).

      השינוי של Top-K משפיע על האופן שבו המודל בוחר אסימונים לפלט. ערך של Top-K של 1 אומר שהאסימון הבא שנבחר הוא האסימון הסביר ביותר מבין כל האסימונים באוצר המילים של המודל (נקרא גם פענוח חמדני), בעוד שערך של Top-K של 3 אומר שהאסימון הבא נבחר מבין שלושת האסימונים הסבירים ביותר באמצעות רמת אקראיות.

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

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

    • Top-P: משתמשים בפס ההזזה או בתיבת הטקסט כדי להזין ערך ל-top-P. האסימונים נבחרים מההסתברות הגבוהה ביותר לנמוכה ביותר עד שסכום ההסתברויות שלהם שווה לערך של top-P. כדי לקבל תוצאות עם הכי פחות שונות, מגדירים את top-P ל-0.
    • מספר מקסימלי של תשובות: משתמשים בפס ההזזה או בתיבת הטקסט כדי להזין ערך למספר התשובות שרוצים ליצור.
    • הצגת התשובות כשהן מוכנות: אם מפעילים את ההגדרה הזו, התשובות יוצגו כשהן מוכנות.
    • סף מסנן הבטיחות: בוחרים את הסף של הסבירות לקבלת תשובות שעלולות להיות מזיקות.
    • הפעלת Grounding: אין תמיכה ב-Grounding בהנחיות מולטימודאליות.

  5. לוחצים על הוספת מדיה ובוחרים מקור לקובץ.

    העלאה

    בוחרים את הקובץ שרוצים להעלות ולוחצים על פתיחה.

    לפי כתובת URL

    מזינים את כתובת ה-URL של הקובץ שבו רוצים להשתמש ולוחצים על הוספה.

    Cloud Storage

    בוחרים את הדלי ואז את הקובץ מהדלי שרוצים לייבא ולוחצים על בחירה.

    Google Drive

    1. בפעם הראשונה שבוחרים באפשרות הזו, צריך לבחור חשבון ולתת ל-Vertex AI Studio הסכמה לגשת לחשבון. אפשר להעלות כמה קבצים בו-זמנית, וגודלם הכולל צריך להיות עד 10MB. הגודל של כל קובץ לא יכול לחרוג מ-7MB.
    2. לוחצים על הקובץ שרוצים להוסיף.
    3. לוחצים על בחירה.

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

  6. מזינים את הנחיית הטקסט בחלונית הנחיה.

  7. אופציונלי: כדי לראות את מזהה האסימון לטקסט ואת מזהי האסימונים, לוחצים על ספירת האסימונים בחלונית הנחיה.

  8. לוחצים על שליחה.

  9. אופציונלי: כדי לשמור את ההנחיה בההנחיות שלי, לוחצים על שמירה.

  10. אופציונלי: כדי לקבל את קוד Python או פקודת curl להנחיה, לוחצים על קבלת קוד.

Python

התקנה

pip install --upgrade google-genai

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        "What is shown in this image?",
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/image/scones.jpg",
            mime_type="image/jpeg",
        ),
    ],
)
print(response.text)
# Example response:
# The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...

Go

כך מתקינים או מעדכנים את Go.

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithTextImage shows how to generate text using both text and image input
func generateWithTextImage(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "What is shown in this image?"},
			{FileData: &genai.FileData{
				// Image source: https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
				FileURI:  "gs://cloud-samples-data/generative-ai/image/scones.jpg",
				MIMEType: "image/jpeg",
			}},
		},
			Role: genai.RoleUser},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// The image shows an overhead shot of a rustic, artistic arrangement on a surface that ...

	return nil
}

Node.js

התקנה

npm install @google/genai

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const image = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/scones.jpg',
      mimeType: 'image/jpeg',
    },
  };

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [image, 'What is shown in this image?'],
  });

  console.log(response.text);

  return response.text;
}

Java

כך מתקינים או מעדכנים את Java.

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;

public class TextGenerationWithTextAndImage {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with text and image input
  public static String generateContent(String modelId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromText("What is shown in this image?"),
                  Part.fromUri(
                      "gs://cloud-samples-data/generative-ai/image/scones.jpg", "image/jpeg")),
              null);

      System.out.print(response.text());
      // Example response:
      // The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...
      return response.text();
    }
  }
}

REST

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

אפשר לכלול תמונות שמאוחסנות ב-Cloud Storage או להשתמש בנתוני תמונה שמקודדים ב-base64.

תמונה ב-Cloud Storage

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • FILE_URI: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים את האפשרויות הבאות:
    • URI של קטגוריה של Cloud Storage: האובייקט צריך להיות ניתן לקריאה באופן ציבורי או להיות באותו פרויקט Google Cloud ששולח את הבקשה. במקרה של gemini-2.0-flash ו-gemini-2.0-flash-lite, מגבלת הגודל היא ‎2 GB.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ חייבת להיות קריאה לכולם. אפשר לציין קובץ סרטון אחד, קובץ אודיו אחד ועד 10 קובצי תמונות לכל בקשה. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15 MB.
    • כתובת URL של סרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס אל Google Cloud המסוף, או להיות גלוי לכולם. אפשר לציין רק כתובת URL אחת של סרטון ב-YouTube לכל בקשה.

    כשמציינים fileURI, צריך לציין גם את סוג המדיה (mimeType) של הקובץ. אם שירות VPC Service Controls מופעל, ציון כתובת URL של קובץ מדיה עבור fileURI אינו נתמך.

    אם אין לכם קובץ תמונה ב-Cloud Storage, אתם יכולים להשתמש בקובץ הבא שזמין לציבור: gs://cloud-samples-data/generative-ai/image/scones.jpg עם סוג MIME של image/jpeg. כדי לראות את התמונה הזו, צריך לפתוח את קובץ התמונה לדוגמה.

  • MIME_TYPE: סוג המדיה של הקובץ שצוין בשדות data או fileUri. הערכים הקבילים כוללים את האפשרויות הבאות:

    לחיצה להרחבת סוגי MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: הוראות הטקסט שצריך לכלול בהנחיה. לדוגמה, What is shown in this image?

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

נתוני תמונה ב-Base64

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION: האזור שבו תתבצע הבקשה. צריך להזין אזור נתמך. כאן מפורטת רשימת האזורים הנתמכים.

    כאן אפשר ללחוץ כדי להרחיב רשימה חלקית של אזורים זמינים

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: מזהה הפרויקט.
  • B64_BASE_IMAGE
    קידוד base64 של התמונה, קובץ ה-PDF או הסרטון שרוצים לכלול בהנחיה. כשמצרפים מדיה בתוך השורה, צריך לציין גם את סוג המדיה (mimeType) של הנתונים.
  • MIME_TYPE: סוג המדיה של הקובץ שצוין בשדות data או fileUri. הערכים הקבילים כוללים את האפשרויות הבאות:

    לחיצה להרחבת סוגי MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: הוראות הטקסט שצריך לכלול בהנחיה. לדוגמה: What is shown in this image?.

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

כמה דברים שכדאי לשים לב אליהם בכתובת ה-URL של הדוגמה הזו:
  • משתמשים בשיטה generateContent כדי לבקש שהתשובה תוחזר אחרי שהיא נוצרה במלואה. כדי לצמצם את תפיסת זמן האחזור בקרב קהל אנושי, צריך להזרים את התשובה בזמן שהיא נוצרת באמצעות השיטה streamGenerateContent.
  • מזהה המודל הרב-אופני מופיע בסוף כתובת ה-URL לפני השיטה (לדוגמה, gemini-2.0-flash). יכול להיות שהדוגמה הזו תתמוך גם במודלים אחרים.
  • כשמשתמשים בנקודת קצה אזורית ל-API (לדוגמה, us-central1), האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד. המערכת מתעלמת מכל מיקום שיוצר התנגשות בנתיב המשאב.

כמה תמונות

בכל אחת מהכרטיסיות הבאות מוצגת דרך אחרת לכלול כמה תמונות בבקשת הנחיה. כל דוגמה מקבלת שתי קבוצות של הקלטים הבאים:

  • תמונה של ציון דרך פופולרי בעיר
  • סוג המדיה של התמונה
  • טקסט שמציין את העיר ואת נקודת הציון בתמונה

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

דוגמאות התמונות האלה פועלות עם כל המודלים של Gemini multimodal.

המסוף

כדי לשלוח הנחיה מולטימודלית באמצעות מסוף Google Cloud :

  1. בקטע Vertex AI במסוף Google Cloud , עוברים לדף Vertex AI Studio.

    מעבר אל Vertex AI Studio

  2. לוחצים על פתיחת טופס חופשי.

  3. אופציונלי: מגדירים את המודל והפרמטרים:

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

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

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

      1.0 הוא ערך הטמפרטורה המומלץ להתחלה.

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

      מספר האסימונים המקסימלי שאפשר ליצור בתשובה. טוקן הוא בערך ארבעה תווים. ‫100 טוקנים תואמים בערך ל-60 עד 80 מילים.

      כדי לקבל תשובות קצרות יותר, מציינים ערך נמוך יותר, וכדי לקבל תשובות ארוכות יותר, מציינים ערך גבוה יותר.

    • הוספת רצף עצירות: אופציונלי. מזינים רצף עצירה, שהוא סדרה של תווים שכוללת רווחים. אם המודל נתקל ברצף עצירה, יצירת התשובה נפסקת. רצף העצירות לא נכלל בתגובה, ואפשר להוסיף עד חמישה רצפי עצירות.

  4. אופציונלי: כדי להגדיר פרמטרים מתקדמים, לוחצים על מתקדם ומגדירים את הפרמטרים הבאים:

    לוחצים כדי להרחיב את ההגדרות המתקדמות

    • Top-K: השתמשו בפס ההזזה או בתיבת הטקסט כדי להזין ערך ל-Top-K. (לא נתמך ב-Gemini 1.5).

      השינוי של Top-K משפיע על האופן שבו המודל בוחר אסימונים לפלט. ערך של Top-K של 1 אומר שהאסימון הבא שנבחר הוא האסימון הסביר ביותר מבין כל האסימונים באוצר המילים של המודל (נקרא גם פענוח חמדני), בעוד שערך של Top-K של 3 אומר שהאסימון הבא נבחר מבין שלושת האסימונים הסבירים ביותר באמצעות רמת אקראיות.

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

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

    • Top-P: משתמשים בפס ההזזה או בתיבת הטקסט כדי להזין ערך ל-top-P. האסימונים נבחרים מההסתברות הגבוהה ביותר לנמוכה ביותר עד שסכום ההסתברויות שלהם שווה לערך של top-P. כדי לקבל תוצאות עם הכי פחות שונות, מגדירים את top-P ל-0.
    • מספר מקסימלי של תשובות: משתמשים בפס ההזזה או בתיבת הטקסט כדי להזין ערך למספר התשובות שרוצים ליצור.
    • הצגת התשובות כשהן מוכנות: אם מפעילים את ההגדרה הזו, התשובות יוצגו כשהן מוכנות.
    • סף מסנן הבטיחות: בוחרים את הסף של הסבירות לקבלת תשובות שעלולות להיות מזיקות.
    • הפעלת Grounding: אין תמיכה ב-Grounding בהנחיות מולטימודאליות.

  5. לוחצים על הוספת מדיה ובוחרים מקור לקובץ.

    העלאה

    בוחרים את הקובץ שרוצים להעלות ולוחצים על פתיחה.

    לפי כתובת URL

    מזינים את כתובת ה-URL של הקובץ שבו רוצים להשתמש ולוחצים על הוספה.

    Cloud Storage

    בוחרים את הדלי ואז את הקובץ מהדלי שרוצים לייבא ולוחצים על בחירה.

    Google Drive

    1. בפעם הראשונה שבוחרים באפשרות הזו, צריך לבחור חשבון ולתת ל-Vertex AI Studio הסכמה לגשת לחשבון. אפשר להעלות כמה קבצים בו-זמנית, וגודלם הכולל צריך להיות עד 10MB. הגודל של כל קובץ לא יכול לחרוג מ-7MB.
    2. לוחצים על הקובץ שרוצים להוסיף.
    3. לוחצים על בחירה.

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

  6. מזינים את הנחיית הטקסט בחלונית הנחיה.

  7. אופציונלי: כדי לראות את מזהה האסימון לטקסט ואת מזהי האסימונים, לוחצים על ספירת האסימונים בחלונית הנחיה.

  8. לוחצים על שליחה.

  9. אופציונלי: כדי לשמור את ההנחיה בההנחיות שלי, לוחצים על שמירה.

  10. אופציונלי: כדי לקבל את קוד Python או פקודת curl להנחיה, לוחצים על קבלת קוד.

Python

התקנה

pip install --upgrade google-genai

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Read content from GCS
gcs_file_img_path = "gs://cloud-samples-data/generative-ai/image/scones.jpg"

# Read content from a local file
with open("test_data/latte.jpg", "rb") as f:
    local_file_img_bytes = f.read()

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        "Generate a list of all the objects contained in both images.",
        Part.from_uri(file_uri=gcs_file_img_path, mime_type="image/jpeg"),
        Part.from_bytes(data=local_file_img_bytes, mime_type="image/jpeg"),
    ],
)
print(response.text)
# Example response:
# Okay, here's the list of objects present in both images:
# ...

Go

כך מתקינים או מעדכנים את Go.

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import (
	"context"
	"fmt"
	"io"
	"os"

	genai "google.golang.org/genai"
)

// generateWithMultiImg shows how to generate text using multiple image inputs.
func generateWithMultiImg(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	// TODO(Developer): Update the path to file (image source:
	//   https://storage.googleapis.com/cloud-samples-data/generative-ai/image/latte.jpg )
	imageBytes, err := os.ReadFile("./latte.jpg")
	if err != nil {
		return fmt.Errorf("failed to read image: %w", err)
	}

	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "Write an advertising jingle based on the items in both images."},
			{FileData: &genai.FileData{
				// Image source: https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
				FileURI:  "gs://cloud-samples-data/generative-ai/image/scones.jpg",
				MIMEType: "image/jpeg",
			}},
			{InlineData: &genai.Blob{
				Data:     imageBytes,
				MIMEType: "image/jpeg",
			}},
		}},
	}
	modelName := "gemini-2.5-flash"

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// Okay, here's an advertising jingle inspired by the blueberry scones, coffee, flowers, chocolate cake, and latte:
	//
	// (Upbeat, jazzy music)
	// ...

	return nil
}

Node.js

התקנה

npm install @google/genai

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const image1 = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/scones.jpg',
      mimeType: 'image/jpeg',
    },
  };

  const image2 = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/fruit.png',
      mimeType: 'image/png',
    },
  };

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [
      image1,
      image2,
      'Generate a list of all the objects contained in both images.',
    ],
  });

  console.log(response.text);

  return response.text;
}

Java

כך מתקינים או מעדכנים את Java.

מידע נוסף מופיע ב מאמרי העזרה בנושא SDK.

מגדירים משתני סביבה כדי להשתמש ב-Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class TextGenerationWithMultiImage {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    // Content from Google Cloud Storage
    String gcsFileImagePath = "gs://cloud-samples-data/generative-ai/image/scones.jpg";
    String localImageFilePath = "resources/latte.jpg";
    generateContent(modelId, gcsFileImagePath, localImageFilePath);
  }

  // Generates text with multiple images
  public static String generateContent(
      String modelId, String gcsFileImagePath, String localImageFilePath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      // Read content from a local file.
      byte[] localFileImgBytes = Files.readAllBytes(Paths.get(localImageFilePath));

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromText("Generate a list of all the objects contained in both images"),
                  Part.fromBytes(localFileImgBytes, "image/jpeg"),
                  Part.fromUri(gcsFileImagePath, "image/jpeg")),
              null);

      System.out.print(response.text());
      // Example response:
      // Okay, here's the list of objects present in both images:
      //
      // **Image 1 (Scones):**
      //
      // *   Scones
      // *   Plate
      // *   Jam/Preserve
      // *   Cream/Butter
      // *   Table/Surface
      // *   Napkin/Cloth (possibly)
      //
      // **Image 2 (Latte):**
      //
      // *   Latte/Coffee cup
      // *   Saucer
      // *   Spoon
      // *   Table/Surface
      // *   Foam/Latte art
      //
      // **Objects potentially in both (depending on interpretation and specific items):**
      //
      // *   Plate/Saucer (both are serving dishes)
      // *   Table/Surface
      return response.text();
    }
  }
}

REST

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

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: .
  • FILE_URI1: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים את האפשרויות הבאות:
    • URI של קטגוריה של Cloud Storage: האובייקט צריך להיות ניתן לקריאה באופן ציבורי או להיות באותו פרויקט Google Cloud ששולח את הבקשה. במקרה של gemini-2.0-flash ו-gemini-2.0-flash-lite, מגבלת הגודל היא ‎2 GB.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ חייבת להיות קריאה לכולם. אפשר לציין קובץ סרטון אחד, קובץ אודיו אחד ועד 10 קובצי תמונות לכל בקשה. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15 MB.
    • כתובת URL של סרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס אל Google Cloud המסוף, או להיות גלוי לכולם. אפשר לציין רק כתובת URL אחת של סרטון ב-YouTube לכל בקשה.

    כשמציינים fileURI, צריך לציין גם את סוג המדיה (mimeType) של הקובץ. אם שירות VPC Service Controls מופעל, ציון כתובת URL של קובץ מדיה עבור fileURI אינו נתמך.

    אם אין לכם קובץ תמונה ב-Cloud Storage, אתם יכולים להשתמש בקובץ הבא שזמין לציבור: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png עם סוג MIME של image/png. כדי לראות את התמונה הזו, צריך לפתוח את קובץ התמונה לדוגמה.

  • MIME_TYPE: סוג המדיה של הקובץ שצוין בשדות data או fileUri. הערכים הקבילים כוללים את האפשרויות הבאות:

    לחיצה להרחבת סוגי MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
    כדי לפשט את הדברים, בדוגמה הזו נעשה שימוש באותו סוג מדיה לכל שלוש תמונות הקלט.
  • TEXT1: הוראות הטקסט שצריך לכלול בהנחיה. לדוגמה, city: Rome, Landmark: the Colosseum
  • FILE_URI2: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים את האפשרויות הבאות:
    • URI של קטגוריה של Cloud Storage: האובייקט צריך להיות ניתן לקריאה באופן ציבורי או להיות באותו פרויקט Google Cloud ששולח את הבקשה. במקרה של gemini-2.0-flash ו-gemini-2.0-flash-lite, מגבלת הגודל היא ‎2 GB.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ חייבת להיות קריאה לכולם. אפשר לציין קובץ סרטון אחד, קובץ אודיו אחד ועד 10 קובצי תמונות לכל בקשה. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15 MB.
    • כתובת URL של סרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס אל Google Cloud המסוף, או להיות גלוי לכולם. אפשר לציין רק כתובת URL אחת של סרטון ב-YouTube לכל בקשה.

    כשמציינים fileURI, צריך לציין גם את סוג המדיה (mimeType) של הקובץ. אם שירות VPC Service Controls מופעל, ציון כתובת URL של קובץ מדיה עבור fileURI אינו נתמך.

    אם אין לכם קובץ תמונה ב-Cloud Storage, אתם יכולים להשתמש בקובץ הבא שזמין לציבור: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png עם סוג MIME של image/png. כדי לראות את התמונה הזו, צריך לפתוח את קובץ התמונה לדוגמה.

  • TEXT2: הוראות הטקסט שצריך לכלול בהנחיה. לדוגמה, city: Beijing, Landmark: Forbidden City
  • FILE_URI3: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים את האפשרויות הבאות:
    • URI של קטגוריה של Cloud Storage: האובייקט צריך להיות ניתן לקריאה באופן ציבורי או להיות באותו פרויקט Google Cloud ששולח את הבקשה. במקרה של gemini-2.0-flash ו-gemini-2.0-flash-lite, מגבלת הגודל היא ‎2 GB.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ חייבת להיות קריאה לכולם. אפשר לציין קובץ סרטון אחד, קובץ אודיו אחד ועד 10 קובצי תמונות לכל בקשה. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15 MB.
    • כתובת URL של סרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס אל Google Cloud המסוף, או להיות גלוי לכולם. אפשר לציין רק כתובת URL אחת של סרטון ב-YouTube לכל בקשה.

    כשמציינים fileURI, צריך לציין גם את סוג המדיה (mimeType) של הקובץ. אם שירות VPC Service Controls מופעל, ציון כתובת URL של קובץ מדיה עבור fileURI אינו נתמך.

    אם אין לכם קובץ תמונה ב-Cloud Storage, אתם יכולים להשתמש בקובץ הבא שזמין לציבור: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png עם סוג MIME של image/png. כדי לראות את התמונה הזו, צריך לפתוח את קובץ התמונה לדוגמה.

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI1",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT1"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI2",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT2"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI3",
          "mimeType": "MIME_TYPE"
        }
      }
    ]
  }
}
EOF

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI1",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT1"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI2",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT2"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI3",
          "mimeType": "MIME_TYPE"
        }
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

שימו לב לפרטים הבאים בכתובת ה-URL של הדוגמה הזו:
  • משתמשים בשיטה generateContent כדי לבקש שהתשובה תוחזר אחרי שהיא נוצרה במלואה. כדי לצמצם את תפיסת זמן האחזור בקרב קהל אנושי, צריך להזרים את התשובה בזמן שהיא נוצרת באמצעות השיטה streamGenerateContent.
  • מזהה המודל הרב-אופני מופיע בסוף כתובת ה-URL לפני השיטה (לדוגמה, gemini-2.0-flash). יכול להיות שהדוגמה הזו תתמוך גם במודלים אחרים.
  • כשמשתמשים בנקודת קצה אזורית ל-API (לדוגמה, us-central1), האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד. המערכת מתעלמת מכל מיקום שיוצר התנגשות בנתיב המשאב.

הגדרת פרמטרים אופציונליים של המודל

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

טוקניזציה של תמונות

במודלים של Gemini 3, טוקניזציה של תמונות משתמשת באורך רצף משתנה, שמחליף את שיטת Pan and Scan ששימשה במודלים קודמים, כדי לשפר את האיכות והחביון.

אתם יכולים לציין רזולוציה של מדיה לקלט של תמונות וקובצי PDF, מה שמשפיע על האופן שבו התמונות עוברות טוקניזציה ועל מספר הטוקנים שמשמשים לכל תמונה. אפשר להגדיר את media_resolution ב-generationConfig כדי להחיל רזולוציה של low, medium או high על כל המדיה בבקשה, או להגדיר רזולוציה לחלקים ספציפיים של המדיה, וכך לשנות את ההגדרה ברמת העל. ultra_high אפשר להגדיר את הרזולוציה רק לחלקים נפרדים של מדיה.

הרזולוציות הבאות זמינות למודלים של Gemini 3:

  • MEDIA_RESOLUTION_ULTRA_HIGH: 2,240 טוקנים לתמונות
  • MEDIA_RESOLUTION_HIGH: 1,120 אסימונים לתמונות ולקובצי PDF
  • MEDIA_RESOLUTION_MEDIUM: 560 אסימונים לתמונות ולקובצי PDF
  • MEDIA_RESOLUTION_LOW: 280 אסימונים לתמונות ולקובצי PDF
  • MEDIA_RESOLUTION_UNSPECIFIED: 1,120 אסימונים לתמונות ו-560 אסימונים לקובצי PDF (ברירת מחדל)

מספר הטוקנים הבא רלוונטי ל-Gemini 3 Pro Image:

  • תמונות קלט: 560 טוקנים לכל תמונה
  • תמונות בפלט:
    • רזולוציה של 1K: 1,120 טוקנים לכל תמונה (ברירת מחדל)
    • רזולוציית 2K: 1,120 טוקנים לכל תמונה
    • רזולוציית 4K: ‏ 2,000 טוקנים לכל תמונה

במודלים מגרסה מוקדמת יותר מ-Gemini 3, כל תמונה מעובדת באמצעות Pan and Scan (הזזה וסריקה) ועולה 258 טוקנים.

בדוגמת הקוד הזו אפשר לראות איך משנים את media_resolution:

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
  model="gemini-3-pro-preview",
  contents=[
      types.Part(
          file_data=types.FileData(
              file_uri="gs://cloud-samples-data/generative-ai/image/a-man-and-a-dog.png",
              mime_type="image/jpeg",
          ),
          media_resolution=types.PartMediaResolution(
              level=types.PartMediaResolutionLevel.MEDIA_RESOLUTION_HIGH
          ),
      ),
      Part(
          file_data=types.FileData(
              file_uri="gs://cloud-samples-data/generative-ai/video/behind_the_scenes_pixel.mp4",
              mime_type="video/mp4",
          ),
          media_resolution=types.PartMediaResolution(
              level=types.PartMediaResolutionLevel.MEDIA_RESOLUTION_LOW
          ),
      ),
      "When does the image appear in the video? What is the context?",
  ],
)
print(response.text)

שיטות מומלצות

כדי לקבל את התוצאות הטובות ביותר כשמשתמשים בתמונות, כדאי לפעול לפי השיטות המומלצות והמידע הבאים:

  • אם רוצים לזהות טקסט בתמונה, כדאי להשתמש בהנחיות עם תמונה אחת כדי לקבל תוצאות טובות יותר מאשר בהנחיות עם כמה תמונות.
  • אם ההנחיה כוללת תמונה אחת, צריך למקם את התמונה לפני הנחיית הטקסט בבקשה.
  • אם ההנחיה מכילה כמה תמונות, ואתם רוצים להתייחס אליהן בהמשך ההנחיה או שהמודל יתייחס אליהן בתשובה שלו, כדאי לתת לכל תמונה אינדקס לפני התמונה. משתמשים ב-a b c או ב-image 1 image 2 image 3 לאינדקס. הדוגמה הבאה מראה איך משתמשים בתמונות עם אינדקס בהנחיה:
    image 1 
    image 2 
    image 3 
    
    Write a blogpost about my day using image 1 and image 2. Then, give me ideas
    for tomorrow based on image 3.
  • מומלץ להשתמש בתמונות ברזולוציה גבוהה יותר כדי לקבל תוצאות טובות יותר.
  • כדאי לכלול כמה דוגמאות בהנחיה.
  • מסובבים את התמונות לכיוון הנכון לפני שמוסיפים אותן להנחיה.
  • אל תשתמשו בתמונות מטושטשות.

מגבלות

מודלים מולטי-מודאליים של Gemini הם עוצמתיים במקרים רבים של תרחישי שימוש מולטי-מודאליים, אבל חשוב להבין את המגבלות של המודלים:

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

המאמרים הבאים