הבנת מסמכים

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

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

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

מודלים פרטים על המדיה סוגי MIME
  • גודל הקובץ המקסימלי לכל קובץ בייבוא דרך API או Cloud Storage: 50MB
  • גודל הקובץ המקסימלי להעלאה ישירה דרך המסוף: 7MB
  • text/plain
  • מספר הקבצים המקסימלי לכל הנחיה: בהתאם למגבלות של חלון ההקשר של 128 אלף טוקנים
  • מספר הדפים המקסימלי בכל קובץ: בהתאם למגבלות של חלון ההקשר של 128 אלף טוקנים
  • גודל מקסימלי של חלק מוטבע: 256MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Cloud Storage: ‎2 GiB פחות ‎500 KiB
  • גודל הקובץ המקסימלי לכל קובץ מכתובות URL ציבוריות מסוג HTTP או כתובות URL מסוג HTTPS: ‎15MiB
  • גודל הקובץ המקסימלי לכל קובץ בהעלאות מקומיות ישירות במסוף: 7MiB בתוך השורה (עד 50MiB בשלבים ל-Cloud Storage)
  • גודל הקובץ המקסימלי לכל קובץ בייבוא מ-Google Drive במסוף: 7MB‏ (10MB בסך הכול)
  • application/pdf
  • text/plain
  • מספר הקבצים המקסימלי לכל הנחיה: 3,000 מסמכים (כולל תמונות; עד 6,500 קבצים בסך הכל, כולל טקסט פשוט)
  • מספר הדפים המקסימלי בכל קובץ: 3,000
  • גודל מקסימלי של חלק מוטבע (GenerateContent API): 256MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Cloud Storage: ‎2 GiB פחות ‎500 KiB
  • גודל הקובץ המקסימלי לכל קובץ מכתובות URL ציבוריות מסוג HTTP או כתובות URL מסוג HTTPS: ‎15MiB
  • גודל הקובץ המקסימלי לכל קובץ בהעלאות מקומיות ישירות במסוף: 7MiB בתוך השורה (עד 50MiB בשלבים ל-Cloud Storage)
  • גודל הקובץ המקסימלי לכל קובץ בייבוא מ-Google Drive במסוף: 7MB‏ (10MB בסך הכול)
  • אסימוני רזולוציה שמוגדרים כברירת מחדל: 560
  • ‫OCR לקובצי PDF סרוקים: לא בשימוש כברירת מחדל
  • application/pdf
  • text/plain
  • application/msword
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • application/vnd.openxmlformats-officedocument.wordprocessingml.template
  • application/vnd.oasis.opendocument.text
  • application/vnd.ms-powerpoint
  • application/vnd.openxmlformats-officedocument.presentationml.presentation
  • application/vnd.oasis.opendocument.presentation
  • application/vnd.ms-excel
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • application/vnd.oasis.opendocument.spreadsheet
  • מספר הקבצים המקסימלי לכל הנחיה: 3,000 קובצי PDF (כולל תמונות; עד 6,500 קבצים בסך הכול, כולל טקסט פשוט)
  • מספר הדפים המקסימלי בכל קובץ: 3,000
  • גודל מקסימלי של חלק מוטבע (GenerateContent API): 256MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Cloud Storage: ‎2 GiB פחות ‎500 KiB
  • גודל הקובץ המקסימלי לכל קובץ מכתובות URL ציבוריות מסוג HTTP או כתובות URL מסוג HTTPS: ‎15MiB
  • גודל הקובץ המקסימלי לכל קובץ בהעלאות מקומיות ישירות במסוף: 7MiB בתוך השורה (עד 50MiB בשלבים ל-Cloud Storage)
  • גודל הקובץ המקסימלי לכל קובץ בייבוא מ-Google Drive במסוף: 7MB‏ (10MB בסך הכול)
  • אסימוני רזולוציה שמוגדרים כברירת מחדל: 560
  • ‫OCR לקובצי PDF סרוקים: לא בשימוש כברירת מחדל
  • application/pdf
  • text/plain
  • text/plain
  • מספר הקבצים המקסימלי לכל הנחיה: בהתאם לתמיכה של חלון ההקשר של 65,536 טוקנים
  • מספר הדפים המקסימלי בכל קובץ: בהתאם למגבלה של חלון ההקשר של 65,536 טוקנים
  • גודל מקסימלי של חלק מוטבע: 256MB
  • גודל הקובץ המקסימלי לכל קובץ מ-Cloud Storage: ‎2 GiB פחות ‎500 KiB
  • גודל הקובץ המקסימלי לכל קובץ מכתובות URL ציבוריות מסוג HTTP או כתובות URL מסוג HTTPS: ‎15MiB
  • גודל הקובץ המקסימלי לכל קובץ בהעלאות מקומיות ישירות במסוף: 7MiB בתוך השורה (עד 50MiB בשלבים ל-Cloud Storage)
  • גודל הקובץ המקסימלי לכל קובץ בייבוא מ-Google Drive במסוף: 7MB‏ (10MB בסך הכול)
  • application/pdf
  • text/plain
  • מספר הקבצים המקסימלי לכל הנחיה: 3,000 קובצי PDF (כולל תמונות; עד 6,500 קבצים בסך הכול, כולל טקסט פשוט)
  • מספר הדפים המקסימלי בכל קובץ: 3,000 (1,000 בנקודות קצה שלא הועברו)
  • גודל מקסימלי של חלק מוטמע: 256MB‏ (50MiB לקובצי PDF או 7MiB לטקסט פשוט בנקודות קצה שלא הועברו)
  • גודל הקובץ המקסימלי לכל קובץ מ-Cloud Storage: ‫2GiB פחות 500KiB ‏(50MiB ל-PDF או 7MiB לטקסט פשוט בנקודות קצה שלא הועברו)
  • גודל הקובץ המקסימלי לכל קובץ מכתובות URL ציבוריות מסוג HTTP או כתובות URL מסוג HTTPS: ‫15MiB‏ (7MiB לטקסט פשוט בנקודות קצה שלא הועברו)
  • גודל הקובץ המקסימלי לכל קובץ בהעלאות מקומיות ישירות במסוף: 7MiB בתוך השורה (עד 50MiB בשלבים ל-Cloud Storage)
  • גודל הקובץ המקסימלי לכל קובץ בייבוא מ-Google Drive במסוף: 7MB‏ (10MB בסך הכול)
  • application/pdf
  • text/plain
  • מספר הקבצים המקסימלי לכל הנחיה: 3,000 קובצי PDF (כולל תמונות; עד 6,500 קבצים בסך הכול, כולל טקסט פשוט)
  • מספר הדפים המקסימלי בכל קובץ: 1,000
  • גודל מקסימלי של חלק מוטמע: 256MB‏ (50MiB לקובצי PDF או 7MiB לטקסט פשוט בנקודות קצה שלא הועברו)
  • גודל הקובץ המקסימלי לכל קובץ מ-Cloud Storage: ‫2GiB פחות 500KiB ‏(50MiB ל-PDF או 7MiB לטקסט פשוט בנקודות קצה שלא הועברו)
  • גודל הקובץ המקסימלי לכל קובץ מכתובות URL ציבוריות מסוג HTTP או כתובות URL מסוג HTTPS: ‫15MiB‏ (7MiB לטקסט פשוט בנקודות קצה שלא הועברו)
  • גודל הקובץ המקסימלי לכל קובץ בהעלאות מקומיות ישירות במסוף: 7MiB בתוך השורה (עד 50MiB בשלבים ל-Cloud Storage)
  • גודל הקובץ המקסימלי לכל קובץ בייבוא מ-Google Drive במסוף: 7MB‏ (10MB בסך הכול)
  • application/pdf
  • text/plain
  • מספר הקבצים המקסימלי לכל הנחיה: 3
  • מספר הדפים המקסימלי בכל קובץ: 3
  • גודל הקובץ המקסימלי לכל קובץ בייבוא מ-API או מ-Cloud Storage: ‫50MB‏ (application/pdf) או 7MB‏ (text/plain)
  • גודל הקובץ המקסימלי להעלאה ישירה דרך המסוף: 7MB
  • application/pdf
  • text/plain

‫1זהו המספר המקסימלי של TPM מקלט של מסמכים בכל הבקשות של פרויקט. השתמשו בערך המקסימלי של TPM גם למודלים אחרים.

מדד המכסה הוא generate_content_document_input_per_base_model_id_and_resolution.

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

מגבלות על נקודות קצה ל-API ועל חלון ההקשר

במודלים הרגילים של Gemini 3 ואילך אפשר להעלות עד 3,000 תמונות וקובצי PDF ביחד, 1,000 קובצי אודיו או 10 סרטונים לכל בקשה ב-generateContent וב-Interactions API (עד 6,500 קבצים מולטי-מודאליים ביחד כשכוללים קובצי טקסט פשוט). בנקודות קצה (endpoint) של Gemini 2.5 ו-gemini-3.1-pro-preview-customtools שלא הועברו, חלות המגבלות הקודמות על גודל הקובץ,מספר הדפים ב-PDF‏ (1,000) ומספר כתובות ה-URL מסוג HTTP או HTTPS. המגבלות המעשיות על בקשות תלויות גם בנקודת הקצה ל-API, במקור הקובץ ובחלון ההקשר:

  • מגבלת ה-URI של Interactions API לקובצי Cloud Storage: בקשות API של Interactions תומכות בעד 100 מזהי URI נפרדים של Cloud Storage (gs://) לכל בקשת אינטראקציה עם המודל, כולל מזהי URI שהועברו מחלקים קודמים בשיחה באמצעות previous_interaction_id. בקשות generateContent תומכות במזהי URI של gs:// עד למגבלת הפריטים של המודל.
  • מגבלות על מקור הקובץ, החלק המוטמע ו-payload של הבקשה: קבצים בודדים שמפנים אליהם מ-Cloud Storage לא יכולים לחרוג מ-2GiB פחות 500KiB, וקבצים שמפנים אליהם מכתובות URL ציבוריות מסוג HTTP או מכתובות URL מסוג HTTPS לא יכולים לחרוג מ-15MiB. ב-generateContent וב-streamGenerateContent, כל קובץ מצורף מוטבע (inline_data) לא יכול לחרוג מ-256MB במודלים סטנדרטיים של Gemini 3 ואילך, והמטען הייעודי (payload) הכולל של בקשת HTTP או gRPC דחוסה לא יכול לחרוג מ-500MiB (קידוד base64 מוסיף כ-33% לתקורה של הגודל). ב-Interactions API, המטען הייעודי (payload) של בקשת ה-HTTP הדחוסה לא יכול לחרוג מ-256MiB לבקשות סינכרוניות או לבקשות סטרימינג. כש-service_tier מוגדר ל-deferred (מה שמחייב שגם background וגם store יהיו true), הבקשה הלא דחוסה לא יכולה לחרוג מ-9.75MiB.
  • חלון הקשר: מספר הטוקנים הכולל של כל הקלטים המולטי-מודאליים והטקסט בבקשה לא יכול לחרוג ממגבלת הטוקנים של המודל (1,048,576 טוקנים במודלים סטנדרטיים של Gemini 3 ואילך).

הוספת מסמכים לבקשה

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

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"))
model_id = "gemini-3.5-flash"

prompt = """
You are a highly skilled document summarization specialist.
Your task is to provide a concise executive summary of no more than 300 words.
Please summarize the given document for a general audience.
"""

pdf_file = Part.from_uri(
    file_uri="gs://cloud-samples-data/generative-ai/pdf/1706.03762v7.pdf",
    mime_type="application/pdf",
)

response = client.models.generate_content(
    model=model_id,
    contents=[pdf_file, prompt],
)

print(response.text)
# Example response:
# Here is a summary of the document in 300 words.
#
# The paper introduces the Transformer, a novel neural network architecture for
# sequence transduction tasks like machine translation. Unlike existing models that rely on recurrent or
# convolutional layers, the Transformer is based entirely on attention mechanisms.
# ...

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"

	"google.golang.org/genai"
)

// generateTextWithPDF shows how to generate text using a PDF file input.
func generateTextWithPDF(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: `You are a highly skilled document summarization specialist.
	Your task is to provide a concise executive summary of no more than 300 words.
	Please summarize the given document for a general audience.`},
			{FileData: &genai.FileData{
				FileURI:  "gs://cloud-samples-data/generative-ai/pdf/1706.03762v7.pdf",
				MIMEType: "application/pdf",
			}},
		},
			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:
	// "Attention Is All You Need" introduces the Transformer,
	// a groundbreaking neural network architecture designed for...
	// ...

	return nil
}

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 TextGenerationWithPdf {

  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 PDF file 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()) {

      String prompt =
          "You are a highly skilled document summarization specialist.\n"
              + " Your task is to provide a concise executive summary of no more than 300 words.\n"
              + " Please summarize the given document for a general audience";

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromUri(
                      "gs://cloud-samples-data/generative-ai/pdf/1706.03762v7.pdf",
                      "application/pdf"),
                  Part.fromText(prompt)),
              null);

      System.out.print(response.text());
      // Example response:
      // The document introduces the Transformer, a novel neural network architecture designed for
      // sequence transduction tasks, such as machine translation. Unlike previous dominant models
      // that rely on complex recurrent or convolutional neural networks, the Transformer proposes a
      // simpler, more parallelizable design based *solely* on attention mechanisms, entirely
      // dispensing with recurrence and convolutions...

      return response.text();
    }
  }
}

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 generateText(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const prompt = `You are a highly skilled document summarization specialist.
    Your task is to provide a concise executive summary of no more than 300 words.
    Please summarize the given document for a general audience.`;

  const pdfFile = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/pdf/1706.03762v7.pdf',
      mimeType: 'application/pdf',
    },
  };

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [pdfFile, prompt],
  });

  console.log(response.text);

  // Example response:
  //  Here is a summary of the document in 300 words.
  //  The paper introduces the Transformer, a novel neural network architecture for
  //  sequence transduction tasks like machine translation. Unlike existing models that rely on recurrent or
  //  convolutional layers, the Transformer is based entirely on attention mechanisms.
  //  ...

  return response.text;
}

C#

איך מתקינים או מעדכנים את C#

מידע נוסף זמין במאמרי העזרה של ה-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


using Google.GenAI;
using Google.GenAI.Types;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

public class TextGenWithPdf
{
    public async Task<string> GenerateContent(
        string projectId = "your-project-id",
        string location = "global",
        string model = "gemini-2.5-flash")
    {
        await using var client = new Client(
            project: projectId,
            location: location,
            vertexAI: true,
            httpOptions: new HttpOptions { ApiVersion = "v1" });

        string prompt = @"
            You are a highly skilled document summarization specialist.
            Your task is to provide a concise executive summary of no more than 300 words.
            Please summarize the given document for a general audience.";

        var contents = new List<Content>
        {
            new Content
            {
                Role = "user",
                Parts = new List<Part>
                {
                    new Part
                    {
                        FileData = new FileData
                        {
                            FileUri = "gs://cloud-samples-data/generative-ai/pdf/1706.03762v7.pdf",
                            MimeType = "application/pdf",
                        }
                    },
                    new Part { Text = prompt }
                }
            }
        };

        GenerateContentResponse response = await client.Models.GenerateContentAsync(model: model, contents: contents);

        string responseText = response.Candidates[0].Content.Parts[0].Text;
        Console.WriteLine(responseText);
        // Example response:
        // This paper introduces the Transformer, a novel neural network architecture designed
        // for processing sequences, such as those found in language translation. Traditionally,
        // such tasks have relied on complex recurrent or convolutional neural networks...
        return responseText;
    }
}

REST

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

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

  • ‫PROJECT_ID: מזהה הפרויקט. .
  • ‫FILE_URI: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים:
    • ‫URI של קטגוריה ב-Cloud Storage: האובייקט צריך להיות קריא באופן ציבורי או להיות באותו פרויקט ב- Google Cloud ששולח את הבקשה.
    • כתובת URL מסוג HTTP: כתובת ה-URL של הקובץ צריכה להיות קריאה באופן ציבורי, והגודל של כל קובץ לא יכול לחרוג מ-15MiB. במודלים הרגילים של Gemini 3 ואילך אפשר להעלות עד 3,000 תמונות וקובצי PDF ביחד, 1,000 קובצי אודיו או 10 סרטונים בכל בקשה (עד 6, 500 קבצים בסך הכול,כולל קובצי טקסט פשוט). בנקודות קצה לא מועברות של Gemini 2.5 ו-gemini-3.1-pro-preview-customtools, כתובות URL מסוג HTTP או HTTPS מוגבלות ל-10 תמונות, קובץ אודיו אחד או סרטון אחד לכל בקשה.
    • כתובת ה-URL של הסרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס למסוף Google Cloud , או להיות גלוי לכולם. אפשר לשלוח רק כתובת URL אחת של סרטון ב-YouTube בכל בקשה.

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

    אם אין לכם קובץ PDF ב-Cloud Storage, אתם יכולים להשתמש בקובץ הבא שזמין לכולם: gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf עם סוג MIME‏ application/pdf. כדי לראות את קובץ ה-PDF הזה, פתחו את קובץ ה-PDF לדוגמה.

  • ‫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: ההוראות בטקסט שצריך לכלול בהנחיה. לדוגמה, You are a very professional document summarization specialist. Please summarize the given document.

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

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 שדומה לזו:

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

המסוף

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

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

    מעבר ל-Agent Studio

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

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

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

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

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

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

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

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

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

          
      The temperature is used for sampling during response generation, which occurs when topP
      and topK are applied. Temperature controls the degree of randomness in token selection.
      Lower temperatures are good for prompts that require a less open-ended or creative response, while
      higher temperatures can lead to more diverse or creative results. A temperature of 0
      means that the highest probability tokens are always selected. In this case, responses for a given
      prompt are mostly deterministic, but a small amount of variation is still possible.
      
      

      If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature. If the model enters infinite generation, increasing the temperature to at least 0.1 may lead to improved results.

      1.0 is the recommended starting value for temperature. </li> <li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.

      Specify a lower value for shorter responses and a higher value for potentially longer responses.

      </li> <li>**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop sequences.</li> </ul>

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

    העלאה

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

    לפי כתובת URL

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

    Cloud Storage

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

    Google Drive

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

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

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

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

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

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

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

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

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

טוקניזציה של מסמכים

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

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

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

  • ‫MEDIA_RESOLUTION_HIGH: ‏1,120 טוקנים לקובצי PDF
  • ‫MEDIA_RESOLUTION_MEDIUM: ‏560 טוקנים לקובצי PDF
  • MEDIA_RESOLUTION_LOW: ‏280 טוקנים לכל דף בקובצי PDF
  • ‫MEDIA_RESOLUTION_UNSPECIFIED: ‏560 לקובצי PDF (ברירת המחדל)

דוגמת הקוד הבאה ממחישה איך לשנות את media_resolution:

GenerateContent API

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
          ),
      ),
      types.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)

Interactions API

from google import genai

client = genai.Client(
    enterprise=True,
    project="PROJECT_ID",
    location="global",
)

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[
        {
            "type": "image",
            "uri": "gs://cloud-samples-data/generative-ai/image/a-man-and-a-dog.png",
            "mime_type": "image/png",
            "resolution": "high",  # Options: "low", "medium", "high", "ultra_high"
        },
        {
            "type": "video",
            "uri": "gs://cloud-samples-data/generative-ai/video/behind_the_scenes_pixel.mp4",
            "mime_type": "video/mp4",
            "resolution": "low",  # Options: "low", "medium", "high", "ultra_high"
        },
        {
            "type": "text",
            "text": "When does the image appear in the video? What is the context?",
        },
    ],
)
print(interaction.output_text)

שיטות מומלצות לשימוש בקובצי PDF

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

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

מגבלות

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

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

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