Document understanding

Puoi aggiungere documenti (file PDF e TXT) alle richieste di Gemini per eseguire attività che comportano la comprensione dei contenuti dei documenti inclusi. Questa pagina mostra come aggiungere PDF alle richieste a Gemini in Vertex AI utilizzando la console Google Cloud e l'API Vertex AI.

Modelli supportati

La tabella seguente elenca i modelli che supportano la comprensione dei documenti:

Modello Dettagli del media Tipi MIME
Gemini 2.5 Flash-Lite
  • Numero massimo di file per prompt: 3000
  • Numero massimo di pagine per file: 1000
  • Dimensioni massime del file per file: 50 MB
  • application/pdf
  • text/plain
Gemini 2.0 Flash con generazione di immagini
  • Numero massimo di file per prompt: 3000
  • Numero massimo di pagine per file: 1000
  • Dimensioni massime del file per file: 50 MB
  • application/pdf
  • text/plain
Gemini 2.5 Pro
  • Numero massimo di file per prompt: 3000
  • Numero massimo di pagine per file: 1000
  • Dimensioni massime del file per file: 50 MB
  • application/pdf
  • text/plain
Gemini 2.5 Flash
  • Numero massimo di file per prompt: 3000
  • Numero massimo di pagine per file: 1000
  • Dimensioni massime del file per i file importati tramite l'API o Cloud Storage: 50 MB
  • Dimensioni massime del file per i caricamenti diretti tramite la console: 7 MB
  • application/pdf
  • text/plain
Gemini 2.0 Flash
  • Numero massimo di file per prompt: 3000
  • Numero massimo di pagine per file: 1000
  • Dimensioni massime del file per file: 50 MB
  • Token massimi al minuto (TPM) per progetto1:
    • US/Asia: 3,4 milioni
    • UE: 3,4 milioni
  • application/pdf
  • text/plain
Gemini 2.0 Flash-Lite
  • Numero massimo di file per prompt: 3000
  • Numero massimo di pagine per file: 1000
  • Dimensioni massime del file per file: 50 MB
  • Token massimi al minuto (TPM):
    • US/Asia: 3,4 milioni
    • UE: 3,4 milioni
  • application/pdf
  • text/plain

1 Questo è il TPM massimo degli input dei documenti in tutte le richieste di un progetto. Utilizza il TPM massimo anche per altre modalità.

La metrica di quota è generate_content_document_input_per_base_model_id_and_resolution.

Per un elenco delle lingue supportate dai modelli Gemini, consulta le informazioni sui modelli Modelli Google. Per scoprire di più su come progettare prompt multimodali, consulta Progetta prompt multimodali. Se stai cercando un modo per utilizzare Gemini direttamente dalle tue app web e mobile, consulta gli SDK client Firebase AI Logic per app Swift, Android, web, Flutter e Unity.

Aggiungere documenti a una richiesta

Il seguente esempio di codice mostra come includere un PDF in una richiesta di prompt. Questo esempio di PDF funziona con tutti i modelli multimodali Gemini.

Python

Installa

pip install --upgrade google-genai

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:

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

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

client = genai.Client(http_options=HttpOptions(api_version="v1"))
model_id = "gemini-2.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.
# ...

REST

Dopo aver configurato l'ambiente, puoi utilizzare REST per testare un prompt di testo. Il seguente esempio invia una richiesta all'endpoint del modello del publisher.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • FILE_URI: L'URI o l'URL del file da includere nel prompt. I valori accettabili includono:
    • URI del bucket Cloud Storage:l'oggetto deve essere leggibile pubblicamente o risiedere nello stesso progetto Google Cloud che invia la richiesta. Per gemini-2.0-flash e gemini-2.0-flash-lite, il limite di dimensioni è di 2 GB.
    • URL HTTP: l'URL del file deve essere leggibile pubblicamente. Puoi specificare un file video, un file audio e fino a 10 file immagine per richiesta. I file audio, video e i documenti non possono superare i 15 MB.
    • URL del video di YouTube: il video di YouTube deve essere di proprietà dell'account che hai utilizzato per accedere alla console Google Cloud o deve essere pubblico. È supportato un solo URL di video di YouTube per richiesta.

    Quando specifichi un fileURI, devi specificare anche il tipo di media (mimeType) del file. Se Controlli di servizio VPC è abilitato, la specifica di un URL del file multimediale per fileURI non è supportata.

    Se non hai un file PDF in Cloud Storage, puoi utilizzare il seguente file disponibile pubblicamente: gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf con un tipo MIME di application/pdf. Per visualizzare questo PDF, apri il file PDF di esempio.

  • MIME_TYPE: Il tipo di media del file specificato nei campi data o fileUri. I valori accettabili includono:

    Fai clic per espandere i tipi 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: Le istruzioni di testo da includere nel prompt. Ad esempio, You are a very professional document summarization specialist. Please summarize the given document.

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

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

Quindi, esegui questo comando per inviare la richiesta REST:

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

PowerShell

Salva il corpo della richiesta in un file denominato request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

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

Quindi, esegui questo comando per inviare la richiesta REST:

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

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

Dovresti ricevere una risposta JSON simile alla seguente.

Nell'URL di questo esempio, nota quanto segue:
  • Utilizza il metodo generateContent per richiedere che la risposta venga restituita dopo essere stata generata completamente. Per ridurre la percezione della latenza per un pubblico umano, trasmetti in streaming la risposta mentre viene generata utilizzando il metodo streamGenerateContent.
  • L'ID del modello multimodale si trova alla fine dell'URL prima del metodo (ad esempio, gemini-2.0-flash). Questo esempio potrebbe supportare anche altri modelli.

Console

Per inviare un prompt multimodale utilizzando la console Google Cloud , procedi nel seguente modo:

  1. Nella sezione Vertex AI della console Google Cloud , vai alla pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Fai clic su Crea prompt.

  3. (Facoltativo) Configura il modello e i parametri:

    • Modello: seleziona un modello.
  4. (Facoltativo) Per configurare i parametri avanzati, fai clic su Avanzate e configura come segue:

    Fai clic per espandere le configurazioni avanzate.

    • Top-K: utilizza il cursore o la casella di testo per inserire un valore per Top-K.

      Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a 1 indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (chiamato anche decodifica greedy). Un top-K pari a 3 indica, invece, che il token successivo viene selezionato tra i tre token più probabili (utilizzando la temperatura).

      Per ogni fase di selezione dei token, vengono campionati i token Top-K con le probabilità più alte. Quindi i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.

      Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

    • Top-P: utilizza il cursore o la casella di testo per inserire un valore per Top-P. I token vengono selezionati a partire da quello più probabile fino a quello meno probabile, finché la somma delle loro probabilità non corrisponde al valore di Top-P. Per ridurre al minimo la variabilità dei risultati, imposta Top-P su 0.
    • Risposte massime: utilizza il cursore o la casella di testo per inserire un valore per il numero di risposte da generare.
    • Risposte dinamiche: attiva questa opzione per stampare le risposte man mano che vengono generate.
    • Soglia del filtro di sicurezza: seleziona la soglia di probabilità di ricevere risposte potenzialmente dannose.
    • Abilita grounding: il grounding non è supportato per i prompt multimodali.
    • Regione: seleziona la regione che vuoi utilizzare.
    • Temperatura: utilizza il cursore o la casella di testo per inserire un valore per la temperatura.

          
      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.

      </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. Fai clic su Inserisci contenuti multimediali e seleziona un'origine per il file.

    Carica

    Seleziona il file che vuoi caricare e fai clic su Apri.

    Tramite URL

    Inserisci l'URL del file che vuoi utilizzare e fai clic su Inserisci.

    Cloud Storage

    Seleziona il bucket e poi il file dal bucket che vuoi importare e fai clic su Seleziona.

    Google Drive

    1. Scegli un account e dai il consenso a Vertex AI Studio per accedere al tuo account la prima volta che selezioni questa opzione. Puoi caricare più file con una dimensione totale massima di 10 MB. Un singolo file non può superare 7 MB.
    2. Fai clic sul file che vuoi aggiungere.
    3. Fai clic su Seleziona.

      La miniatura del file viene visualizzata nel riquadro Prompt. Viene visualizzato anche il numero totale di token. Se i dati del prompt superano il limite di token, i token vengono troncati e non sono inclusi nell'elaborazione dei dati.

  6. Inserisci il prompt di testo nel riquadro Prompt.

  7. (Facoltativo) Per visualizzare ID token in testo e ID token, fai clic sul conteggio dei token nel riquadro Prompt.

  8. Fai clic su Invia.

  9. (Facoltativo) Per salvare il prompt in I miei prompt, fai clic su Salva.

  10. (Facoltativo) Per ottenere il codice Python o un comando curl per il prompt, fai clic su Crea con il codice > Acquisisci codice.

Impostare i parametri facoltativi del modello

Ogni modello ha un insieme di parametri facoltativi che puoi impostare. Per ulteriori informazioni, consulta Parametri di generazione dei contenuti.

Tokenizzazione dei documenti

Tokenizzazione PDF

I PDF vengono trattati come immagini, quindi ogni pagina di un PDF viene tokenizzata nello stesso modo di un'immagine.

Inoltre, il costo dei PDF segue i prezzi delle immagini di Gemini. Ad esempio, se includi un PDF di due pagine in una chiamata all'API Gemini, ti viene addebitata una tariffa di input per l'elaborazione di due immagini.

Best practice per i PDF

Quando utilizzi i PDF, segui queste best practice e utilizza le seguenti informazioni per ottenere i risultati migliori:

  • Se il prompt contiene un singolo PDF, inseriscilo prima del prompt di testo nella richiesta.
  • Se hai un documento lungo, valuta la possibilità di suddividerlo in più PDF per elaborarlo.
  • Utilizza i PDF creati con il testo visualizzato come testo anziché utilizzare il testo nelle immagini scansionate. Questo formato garantisce che il testo sia leggibile dalla macchina, in modo che sia più facile per il modello modificare, cercare e manipolare rispetto ai PDF di immagini scansionate. Questa pratica fornisce risultati ottimali quando si lavora con documenti con molto testo, come i contratti.

Limitazioni

Sebbene i modelli multimodali Gemini siano potenti in molti casi d'uso multimodali, è importante comprendere i limiti dei modelli:

  • Ragionamento spaziale: i modelli non sono precisi nell'individuazione di testo o oggetti nei PDF. Potrebbero restituire solo i conteggi approssimativi degli oggetti.
  • Accuratezza: i modelli potrebbero generare allucinazioni durante l'interpretazione del testo scritto a mano nei documenti PDF.

Passaggi successivi