הבנת מסמכים

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

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

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

מודלים פרטי המדיה סוגי MIME
  • מספר הקבצים המקסימלי לכל הנחיה: כפי שנתמך על ידי חלון ההקשר של 65,536 אסימונים
  • מספר הדפים המקסימלי לכל קובץ: כפי שנתמך על ידי חלון ההקשר של 65,536 טוקנים
  • גודל הקובץ המקסימלי לכל קובץ: 50MB (ייבוא באמצעות API ו-Cloud Storage) או 7MB (העלאה ישירה דרך Google Cloud מסוף)
  • application/pdf
  • text/plain

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

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

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

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

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

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: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
  • FILE_URI: ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים את האפשרויות הבאות:
    • מזהה ה-URI של קטגוריה של Cloud Storage: האובייקט צריך להיות ניתן לקריאה באופן ציבורי או להיות באותו פרויקט Google Cloud שממנו נשלחת הבקשה.
    • כתובת URL של HTTP: כתובת ה-URL של הקובץ צריכה להיות ניתנת לקריאה על ידי כולם. אפשר לציין קובץ סרטון אחד, קובץ אודיו אחד ועד 10 קובצי תמונות לכל בקשה. הגודל המקסימלי של קובצי אודיו, קובצי וידאו ומסמכים הוא 15 MB.
    • כתובת URL של סרטון ב-YouTube: הסרטון ב-YouTube צריך להיות בבעלות החשבון שבו השתמשתם כדי להיכנס ל- Google Cloud Console או להיות גלוי לכולם. אפשר לציין רק כתובת 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 של הדוגמה הזו:
  • משתמשים בשיטה generateContent כדי לבקש שהתשובה תוחזר אחרי שהיא נוצרה במלואה. כדי לצמצם את תפיסת זמן האחזור בקרב קהל אנושי, אפשר להזרים את התשובה בזמן שהיא נוצרת באמצעות השיטה streamGenerateContent.
  • מזהה המודל הרב-אופני מופיע בסוף כתובת ה-URL לפני השיטה (לדוגמה, gemini-3.5-flash). יכול להיות שהדוגמה הזו תתמוך גם במודלים אחרים.
  • כשמשתמשים בנקודת קצה אזורית של API (לדוגמה, us-central1), האזור מכתובת ה-URL של נקודת הקצה קובע איפה הבקשה תעובד. המערכת מתעלמת מכל מיקום שיוצר התנגשות בנתיב המשאב.

המסוף

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

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

    מעבר ל-Agent Studio

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

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

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

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

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

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

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

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

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

          
      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

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

    Google Drive

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

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

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

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

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

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

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

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

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

חלוקת מסמכים לטוקנים

במודלים של 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:

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)

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

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

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

מגבלות

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

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

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