הבנת תמונות

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

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

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

מודלים פרטים על המדיה סוגי MIME
  • מספר התמונות המקסימלי לכל הנחיה: 2
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • מספר התמונות המקסימלי שאפשר ליצור בכל הנחיה: 4
  • יחסי גובה-רוחב נתמכים: זהה לתמונת הקלט
  • רזולוציות נתמכות: זהה לתמונת הקלט
  • image/png
  • image/jpeg
  • מספר התמונות המקסימלי בכל הנחיה: 10
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 20GiB
  • יחסי גובה-רוחב נתמכים: 16:9, 9:16
  • רזולוציות נתמכות: 720p
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי בכל הנחיה: 10
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 20MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 3,000 (עד 100 מזהי URI)
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • רזולוציית קלט סטנדרטית: 768 x 768
  • רזולוציה מינימלית של תמונת הרפרנס לדמות בהתאמה אישית: 704 x 1,280 (לאורך) או 1,280 x 704 (לרוחב)
  • 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,000
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • אסימוני רזולוציה שמוגדרים כברירת מחדל: 1,120
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif
  • מספר התמונות המקסימלי לכל הנחיה: 14
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר מקסימלי של תמונות פלט לכל הנחיה: מוגבל ל-4,096 טוקנים בפלט
  • יחסי גובה-רוחב נתמכים: 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
  • מספר התמונות המקסימלי לכל הנחיה: 14
  • גודל הקובץ המקסימלי לכל קובץ של נתונים מוטבעים או העלאות ישירות דרך המסוף: 7MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Google Cloud Storage: 30MB
  • מספר מקסימלי של תמונות פלט לכל הנחיה: מוגבל ל-32,768 טוקנים בפלט
  • יחסי גובה-רוחב נתמכים: 1:1, 3:2, 2:3, 3:4, 1:4, 4:1, 4:3, 4:5, 5:4, 1:8, 8:1, 9:16, 16:9, 21:9
  • רזולוציות נתמכות: 512, 1K, 2K, 4K
  • 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, 1:4, 4:1, 4:3, 4:5, 5:4, 1:8, 8:1, 9:16, 16:9, 21:9
  • רזולוציות נתמכות: 1K, ‏ 2K, ‏ 4K
  • 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 ו-21:9
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

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

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

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

תמונה יחידה

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

המסוף

כדי לשלוח פרומפט מולטי-מודאלי באמצעות מסוף Cloud de Confiance :

  1. בקטע Agent Platform במסוף Cloud de Confiance , נכנסים לדף Agent Studio.

    מעבר אל Agent Studio

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    העלאה

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

    לפי כתובת URL

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

    Cloud Storage

    בוחרים את הקטגוריה ואז את הקובץ מהקטגוריה שרוצים לייבא, ולוחצים על Select.

    Google Drive

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

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

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

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

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

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

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

Python

התקנה

pip install --upgrade google-genai

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

מגדירים משתני סביבה כדי להשתמש ב-Google 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.

מגדירים משתני סביבה כדי להשתמש ב-Google 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.

מגדירים משתני סביבה כדי להשתמש ב-Google 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.

מגדירים משתני סביבה כדי להשתמש ב-Google 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: מזהה הפרויקט. .
  • ‫FILE_URI: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים:
    • ‫URI של קטגוריה ב-Cloud Storage: האובייקט צריך להיות קריא באופן ציבורי או להיות באותו פרויקט ב- Cloud de Confiance ששולח את הבקשה.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ צריכה להיות ניתנת לקריאה באופן ציבורי. בכל בקשה אפשר לציין קובץ וידאו אחד, קובץ אודיו אחד ועד 10 קובצי תמונות. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15MB.
    • כתובת ה-URL של הסרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס למסוף Cloud de Confiance , או להיות גלוי לכולם. אפשר להוסיף רק כתובת 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: מזהה הפרויקט. .
  • 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 של הדוגמה הזו:
  • משתמשים ב-method‏ generateContent כדי לבקש שהתשובה תוחזר אחרי שהיא נוצרת במלואה. כדי להפחית את תפיסת זמן האחזור בקרב קהל אנושי, אפשר להעביר בסטרימינג את התשובה בזמן שהיא נוצרת באמצעות השיטה streamGenerateContent.
  • המזהה של המודל המולטי-מודאלי נמצא בסוף כתובת ה-URL לפני ה-method (לדוגמה, gemini-3.5-flash). יכול להיות שהדוגמה הזו תומכת גם במודלים אחרים.
  • כשמשתמשים בנקודת קצה אזורית ל-API (לדוגמה, us-central1), האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד. המערכת מתעלמת מכל מיקום שמתנגש בנתיב המשאב.

כמה תמונות

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

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

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

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

המסוף

כדי לשלוח פרומפט מולטי-מודאלי באמצעות מסוף Cloud de Confiance :

  1. בקטע Agent Platform במסוף Cloud de Confiance , נכנסים לדף Agent Studio.

    מעבר אל Agent Studio

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    העלאה

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

    לפי כתובת URL

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

    Cloud Storage

    בוחרים את הקטגוריה ואז את הקובץ מהקטגוריה שרוצים לייבא, ולוחצים על Select.

    Google Drive

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

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

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

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

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

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

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

Python

התקנה

pip install --upgrade google-genai

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

מגדירים משתני סביבה כדי להשתמש ב-Google 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.

מגדירים משתני סביבה כדי להשתמש ב-Google 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.

מגדירים משתני סביבה כדי להשתמש ב-Google 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.

מגדירים משתני סביבה כדי להשתמש ב-Google 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: האובייקט צריך להיות קריא באופן ציבורי או להיות באותו פרויקט ב- Cloud de Confiance ששולח את הבקשה.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ צריכה להיות ניתנת לקריאה באופן ציבורי. בכל בקשה אפשר לציין קובץ וידאו אחד, קובץ אודיו אחד ועד 10 קובצי תמונות. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15MB.
    • כתובת ה-URL של הסרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס למסוף Cloud de Confiance , או להיות גלוי לכולם. אפשר להוסיף רק כתובת 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: האובייקט צריך להיות קריא באופן ציבורי או להיות באותו פרויקט ב- Cloud de Confiance ששולח את הבקשה.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ צריכה להיות ניתנת לקריאה באופן ציבורי. בכל בקשה אפשר לציין קובץ וידאו אחד, קובץ אודיו אחד ועד 10 קובצי תמונות. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15MB.
    • כתובת ה-URL של הסרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס למסוף Cloud de Confiance , או להיות גלוי לכולם. אפשר להוסיף רק כתובת 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: האובייקט צריך להיות קריא באופן ציבורי או להיות באותו פרויקט ב- Cloud de Confiance ששולח את הבקשה.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ צריכה להיות ניתנת לקריאה באופן ציבורי. בכל בקשה אפשר לציין קובץ וידאו אחד, קובץ אודיו אחד ועד 10 קובצי תמונות. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15MB.
    • כתובת ה-URL של הסרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס למסוף Cloud de Confiance , או להיות גלוי לכולם. אפשר להוסיף רק כתובת 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-3.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-3.5-flash:generateContent" | Select-Object -Expand Content

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

שימו לב לפרטים הבאים בכתובת ה-URL של הדוגמה הזו:
  • משתמשים ב-method‏ generateContent כדי לבקש שהתשובה תוחזר אחרי שהיא נוצרת במלואה. כדי להפחית את תפיסת זמן האחזור בקרב קהל אנושי, אפשר להעביר בסטרימינג את התשובה בזמן שהיא נוצרת באמצעות השיטה streamGenerateContent.
  • המזהה של המודל המולטי-מודאלי נמצא בסוף כתובת ה-URL לפני ה-method (לדוגמה, gemini-3.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 הם עוצמתיים בהרבה תרחישי שימוש מולטי-מודאליים, אבל חשוב להבין את המגבלות של המודלים:

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

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