הבנת תמונות

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

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

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

מודלים פרטי המדיה סוגי MIME
  • מספר התמונות המקסימלי לכל הנחיה: 14
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • הגודל המקסימלי של כל קובץ מ-Google Cloud Storage: 30MB
  • מספר התמונות המקסימלי לכל הנחיה: מוגבל ל-32,768 טוקנים של פלט
  • יחסי גובה-רוחב נתמכים: 1:1, 1:4, 4:1, 1:8, 8:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
  • רזולוציות נתמכות: 1K
  • 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. בקטע Agent Platform במסוף Google Cloud , עוברים לדף Agent Studio.

    מעבר ל-Agent Studio

  2. לוחצים על פתיחת צורה חופשית.

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

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

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

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

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

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

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

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

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

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

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

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

      ההגדרה 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. בפעם הראשונה שבוחרים באפשרות הזו, צריך לבחור חשבון ולתת ל-Agent 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_ENTERPRISE=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-3.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_ENTERPRISE=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_ENTERPRISE=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_ENTERPRISE=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: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
  • 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 Console או להיות גלוי לכולם. אפשר לציין רק כתובת 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-3.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-3.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: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
  • 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-3.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-3.5-flash:generateContent" | Select-Object -Expand Content

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

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

כמה תמונות

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

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

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

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

המסוף

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

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

    מעבר ל-Agent Studio

  2. לוחצים על פתיחת צורה חופשית.

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

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

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

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

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

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

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

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

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

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

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

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

      ההגדרה 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. בפעם הראשונה שבוחרים באפשרות הזו, צריך לבחור חשבון ולתת ל-Agent 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_ENTERPRISE=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-3.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_ENTERPRISE=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_ENTERPRISE=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_ENTERPRISE=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 Console או להיות גלוי לכולם. אפשר לציין רק כתובת 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 Console או להיות גלוי לכולם. אפשר לציין רק כתובת 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 Console או להיות גלוי לכולם. אפשר לציין רק כתובת 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.5-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.1-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 הם עוצמתיים במקרים רבים של שימוש מולטי-מודאלי, אבל חשוב להבין את המגבלות של המודלים:

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

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