Document understanding

Puoi aggiungere PDF alle richieste di Gemini per eseguire attività che richiedono la comprensione i contenuti dei PDF inclusi. Questa pagina mostra come aggiungere file PDF al tuo a Gemini in Vertex AI mediante Console Google Cloud e l'API Vertex AI.

Modelli supportati

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

Modello Dettagli sulla modalità PDF

Gemini 1.5 Flash

Vai alla scheda del modello Flash Gemini 1.5

Numero massimo di pagine per richiesta: 300

Dimensioni massime del file PDF: 30 MB

Gemini 1.5 Pro

Vai alla scheda del modello Gemini 1.5 Pro

Numero massimo di pagine per richiesta: 300

Dimensioni massime del file PDF: 30 MB

Gemini 1.0 Pro Vision

Vai alla scheda del modello Gemini 1.0 Pro Vision

Numero massimo di pagine per richiesta: 16

Dimensioni massime del file PDF: 30 MB

Per un elenco delle lingue supportate dai modelli Gemini, consulta le informazioni sul modello Modelli Google. Per apprendere di più su come progettare prompt multimodali, consulta Progettare prompt multimodali. Se stai cercando un modo per usare Gemini direttamente dal tuo dispositivo mobile app web, consulta le SDK Vertex AI per Firebase per App per Android, Swift, web e Flutter.

Aggiungere documenti a una richiesta

Puoi aggiungere un singolo PDF nelle richieste a Gemini.

PDF singolo

La scheda seguente mostra come includere un PDF in una richiesta di prompt utilizzando il comando per Python. Questo PDF di esempio funziona con tutti i modelli multimodali Gemini.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta SDK Vertex AI per Python documentazione di riferimento dell'API.

Risposte dinamiche e non dinamiche

Puoi scegliere se il modello deve generare risposte in streaming oppure risposte non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il relativo token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo che sono stati generati tutti i token di output.

Per una risposta in modalità flusso, utilizza il parametro stream in generate_content.

  response = model.generate_content(contents=[...], stream = True)
  

Per una risposta non in streaming, rimuovi il parametro o impostalo su False.

Codice di esempio

import vertexai

from vertexai.generative_models import GenerativeModel, Part

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"

vertexai.init(project=project_id, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

prompt = """
You are a very professional document summarization specialist.
Please summarize the given document.
"""

pdf_file_uri = "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf"
pdf_file = Part.from_uri(pdf_file_uri, mime_type="application/pdf")
contents = [pdf_file, prompt]

response = model.generate_content(contents)
print(response.text)

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java in Vertex AI Guida rapida. Per ulteriori informazioni, consulta la sezione Vertex AI documentazione di riferimento dell'SDK Java per Gemini.

Per eseguire l'autenticazione su Vertex AI, configura il valore predefinito dell'applicazione Credenziali. Per ulteriori informazioni, consulta la sezione Configurazione per un ambiente di sviluppo locale.

Risposte dinamiche e non dinamiche

Puoi scegliere se il modello deve generare risposte in streaming oppure risposte non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il relativo token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo che sono stati generati tutti i token di output.

Per una risposta in modalità flusso, utilizza generateContentStream.

  public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
  

Per una risposta non in streaming, utilizza il metodo generateContent.

  public GenerateContentResponse generateContent(Content content)
  

Codice di esempio


import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.api.GenerateContentResponse;
import com.google.cloud.vertexai.generativeai.ContentMaker;
import com.google.cloud.vertexai.generativeai.GenerativeModel;
import com.google.cloud.vertexai.generativeai.PartMaker;
import com.google.cloud.vertexai.generativeai.ResponseHandler;
import java.io.IOException;

public class PdfInput {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.5-flash-001";

    pdfInput(projectId, location, modelName);
  }

  // Analyzes the given video input.
  public static String pdfInput(String projectId, String location, String modelName)
      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 (VertexAI vertexAI = new VertexAI(projectId, location)) {
      String pdfUri = "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf";

      GenerativeModel model = new GenerativeModel(modelName, vertexAI);
      GenerateContentResponse response = model.generateContent(
          ContentMaker.fromMultiModalData(
              "You are a very professional document summarization specialist.\n"
                  + "Please summarize the given document.",
              PartMaker.fromMimeTypeAndData("application/pdf", pdfUri)
          ));

      String output = ResponseHandler.getText(response);
      System.out.println(output);
      return output;
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella documentazione sull'IA generativa rapida utilizzando l'SDK Node.js. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Node.js per Gemini documentazione.

Per eseguire l'autenticazione su Vertex AI, configura il valore predefinito dell'applicazione Credenziali. Per ulteriori informazioni, consulta la sezione Configurazione per un ambiente di sviluppo locale.

Risposte dinamiche e non dinamiche

Puoi scegliere se il modello deve generare risposte in streaming oppure risposte non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il relativo token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo che sono stati generati tutti i token di output.

Per una risposta in modalità flusso, utilizza generateContentStream.

  const streamingResp = await generativeModel.generateContentStream(request);
  

Per una risposta non in streaming, utilizza il metodo generateContent.

  const streamingResp = await generativeModel.generateContent(request);
  

Codice di esempio

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function analyze_pdf(projectId = 'PROJECT_ID') {
  const vertexAI = new VertexAI({project: projectId, location: 'us-central1'});

  const generativeModel = vertexAI.getGenerativeModel({
    model: 'gemini-1.5-flash-001',
  });

  const filePart = {
    file_data: {
      file_uri: 'gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf',
      mime_type: 'application/pdf',
    },
  };
  const textPart = {
    text: `
    You are a very professional document summarization specialist.
    Please summarize the given document.`,
  };

  const request = {
    contents: [{role: 'user', parts: [filePart, textPart]}],
  };

  const resp = await generativeModel.generateContent(request);
  const contentResponse = await resp.response;
  console.log(JSON.stringify(contentResponse));
}

Go

Prima di provare questo esempio, segui le istruzioni di configurazione di Go in Vertex AI Guida rapida. Per ulteriori informazioni, consulta la sezione Vertex AI documentazione di riferimento dell'SDK Go per Gemini.

Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta la sezione Configurazione per un ambiente di sviluppo locale.

Risposte dinamiche e non dinamiche

Puoi scegliere se il modello deve generare risposte in streaming oppure risposte non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il relativo token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo che sono stati generati tutti i token di output.

Per una risposta in modalità flusso, utilizza GenerateContentStream.

  iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
  

Per una risposta non di streaming, utilizza il metodo GenerateContent.

  resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
  

Codice di esempio

import (
	"context"
	"errors"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
)

// pdfPrompt is a sample prompt type consisting of one PDF asset, and a text question.
type pdfPrompt struct {
	// pdfPath is a Google Cloud Storage path starting with "gs://"
	pdfPath string
	// question asked to the model
	question string
}

// generateContentFromPDF generates a response into the provided io.Writer, based upon the PDF
// asset and the question provided in the multimodal prompt.
func generateContentFromPDF(w io.Writer, prompt pdfPrompt, projectID, location, modelName string) error {
	// prompt := pdfPrompt{
	// 	pdfPath: "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf",
	// 	question: `
	// 		You are a very professional document summarization specialist.
	// 		Please summarize the given document.
	// 	`,
	// }
	// location := "us-central1"
	// modelName := "gemini-1.5-flash-001"
	ctx := context.Background()

	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("unable to create client: %w", err)
	}
	defer client.Close()

	model := client.GenerativeModel(modelName)

	part := genai.FileData{
		MIMEType: "application/pdf",
		FileURI:  prompt.pdfPath,
	}

	res, err := model.GenerateContent(ctx, part, genai.Text(prompt.question))
	if err != nil {
		return fmt.Errorf("unable to generate contents: %w", err)
	}

	if len(res.Candidates) == 0 ||
		len(res.Candidates[0].Content.Parts) == 0 {
		return errors.New("empty response from model")
	}

	fmt.Fprintf(w, "generated response: %s\n", res.Candidates[0].Content.Parts[0])
	return nil
}

C#

Prima di provare questo esempio, segui le istruzioni di configurazione C# in Vertex AI Guida rapida. Per ulteriori informazioni, consulta la sezione Vertex AI documentazione di riferimento C#.

Per eseguire l'autenticazione su Vertex AI, configura il valore predefinito dell'applicazione Credenziali. Per ulteriori informazioni, consulta la sezione Configurazione per un ambiente di sviluppo locale.

Risposte dinamiche e non dinamiche

Puoi scegliere se il modello deve generare risposte in streaming oppure risposte non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il relativo token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo che sono stati generati tutti i token di output.

Per una risposta in modalità flusso, utilizza StreamGenerateContent.

  public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
  

Per una risposta non in streaming, utilizza il metodo GenerateContentAsync.

  public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
  

Per ulteriori informazioni su come il server può trasmettere le risposte in streaming, consulta RPC per i flussi di dati.

Codice di esempio


using Google.Cloud.AIPlatform.V1;
using System;
using System.Threading.Tasks;

public class PdfInput
{
    public async Task<string> SummarizePdf(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.5-flash-001")
    {

        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();

        string prompt = @"You are a very professional document summarization specialist.
Please summarize the given document.";

        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = prompt },
                        new Part { FileData = new() { MimeType = "application/pdf", FileUri = "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf" }}
                    }
                }
            }
        };

        GenerateContentResponse response = await predictionServiceClient.GenerateContentAsync(generateContentRequest);

        string responseText = response.Candidates[0].Content.Parts[0].Text;
        Console.WriteLine(responseText);

        return responseText;
    }
}

REST

Dopo configurare l'ambiente, puoi usare REST per testare un prompt di testo. Il seguente esempio invia una richiesta al publisher endpoint del modello.

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

  • LOCATION: la regione in cui elaborare richiesta. Inserisci una regione supportata. Per l'elenco completo delle regioni supportate, vedi Località disponibili.

    Fai clic per espandere un elenco parziale delle regioni disponibili

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: il tuo ID progetto.
  • FILE_URI: L'URI Cloud Storage del file da includere nel prompt. L'oggetto bucket deve essere leggibili pubblicamente o risiedono nello stesso progetto Google Cloud che invia la richiesta. Devi inoltre specificare il tipo di supporto (mimeType) del file.

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

  • MIME_TYPE: Il tipo di supporto del file specificato in data o fileUri campi. I valori accettati sono:

    Fai clic per espandere i tipi MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: Le istruzioni testuali 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 delle seguenti 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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente.

Tieni presente quanto segue nell'URL di questo esempio:
    .
  • Utilizza la generateContent per richiedere che la risposta venga restituita dopo la sua completa generazione. Per ridurre la percezione della latenza per un pubblico umano, trasmetti la risposta in tempo reale generati utilizzando streamGenerateContent .
  • L'ID modello multimodale si trova alla fine dell'URL prima del metodo (ad esempio, gemini-1.5-flash o gemini-1.0-pro-vision). Questo esempio potrebbe supportare altri modelli di machine learning.

Console

Per inviare un prompt multimodale utilizzando la console Google Cloud, esegui la seguenti:

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

    Vai a Vertex AI Studio

  2. In Progettazione di prompt (a turno singolo), fai clic su Apri.
  3. (Facoltativo) Configura il modello e i parametri:

    • Modello: seleziona un modello.
    • Regione: seleziona la regione che vuoi utilizzare.
    • Temperatura: utilizza il cursore o la casella di testo per inserire un valore per la temperatura dell'acqua.

      La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando topP e topK. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno aperta o creativa, mentre temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura di 0 significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato sono per lo più deterministici, ma è ancora possibile una piccola variazione.

      Se il modello restituisce una risposta troppo generica, troppo breve, oppure fornisce una risposta di riserva di risposta, prova ad aumentare la temperatura.

    • Limite di token di output. Utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il parametro limite massimo di output.

      Numero massimo di token che possono essere generati nella risposta. Un token è di circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.

      Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe diverse.

    • Aggiungi una sequenza di interruzioni: facoltativo. Inserisci una sequenza di interruzioni, ovvero una serie che includono spazi. Se il modello incontra una sequenza di interruzioni, la generazione della risposta si interrompe. La sequenza di interruzioni non è inclusa nella risposta e puoi aggiungere fino a cinque sequenze di interruzioni.
  4. (Facoltativo) Per configurare parametri avanzati, fai clic su Avanzato e configurala come segue:
  5. Fai clic per espandere le configurazioni avanzate

    • Top-K: utilizza il cursore o la casella di testo per inserire un valore per top-K. (non supportato per Gemini 1.5).

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

      Per ogni passaggio di selezione dei token, vengono mostrati i token top-K con il vengono campionate. Quindi i token vengono ulteriormente filtrati in base a top-p con il token finale selezionato utilizzando il campionamento della temperatura.

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

    • Top-P: utilizza il cursore o la casella di testo per inserire un valore per top-P. I token vengono selezionati dal più probabile al meno probabile fino alla somma dei loro le probabilità equivalgono al valore di top-P. Per ottenere risultati meno variabili, imposta top-P su 0.
    • Abilita grounding: il grounding non è supportato per la modalità multimodale personalizzati.
  6. Per caricare contenuti multimediali, ad esempio un file PDF:
    1. Fai clic su Inserisci file multimediali e seleziona un'origine.

      Se scegli Google Drive come fonte, devi scegliere un account e dare il consenso Vertex AI Studio per accedere al tuo account la prima volta seleziona questa opzione. Puoi caricare più file multimediali con un totale di fino a 10 MB. Un singolo file non può superare i 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 dei prompt superano il limite di token, i token vengono troncati e non vengono inclusi nell'elaborazione dei dati.

    4. (Facoltativo) Per visualizzare il numero di token calcolati nei file di documenti e la somma di tutti i token, fai clic su Visualizza token.

      Le visualizzazioni ID token in testo e ID token non mostrano output utili, poiché i token multimediali non sono supportati.

      Per chiudere il riquadro dello strumento tokenizzatore, fai clic sulla X o fai clic all'esterno del riquadro.

  7. Inserisci il prompt di testo nel riquadro Prompt. Il modello utilizza i messaggi precedenti come contesto per le nuove risposte.
  8. (Facoltativo) Per visualizzare il numero di token calcolati nei documenti, il numero di token di testo e la somma di tutti i token, fai clic su Visualizza token. Puoi visualizzare i token o gli ID token del tuo prompt di testo.
    • Per visualizzare nel prompt di testo i token evidenziati con colori diversi che contrassegnano il confine di ciascun ID token, fai clic su da ID token a testo. I token multimediali non sono supportati.
    • Per visualizzare gli ID token, fai clic su ID token.

      Per chiudere il riquadro dello strumento tokenizzatore, fai clic sulla X o fai clic all'esterno del riquadro.

  9. Fai clic su Invia.
  10. (Facoltativo) Per salvare il prompt in I miei prompt, fai clic su Salva.
  11. (Facoltativo) Per ottenere il codice Python o un comando curl per il prompt, fai clic su Ricevi codice.
  12. (Facoltativo) Per cancellare tutti i messaggi precedenti, fai clic su Cancella conversazione.

Imposta i parametri del modello

Sui modelli multimodali è possibile impostare i seguenti parametri:

Top-P

Top-P cambia il modo in cui il modello seleziona i token per l'output. Token selezionati dal più probabile (vedi top-K) al meno probabile fino alla somma delle probabilità equivale al valore di top-P. Ad esempio, se i token A, B e C hanno una probabilità di 0,3, 0,2 e 0,1 e il valore di top-P è 0.5, il modello seleziona A o B come token successivo utilizzando la temperatura ed esclude C come candidato.

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

Top-K

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

Per ogni passaggio di selezione dei token, vengono mostrati i token top-K con il vengono campionate. Quindi i token vengono ulteriormente filtrati in base a top-p con il token finale selezionato utilizzando il campionamento della temperatura.

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

Temperatura

La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando topP e topK. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno aperta o creativa, mentre temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura di 0 significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato sono per lo più deterministici, ma è ancora possibile una piccola variazione.

Se il modello restituisce una risposta troppo generica, troppo breve, oppure fornisce una risposta di riserva di risposta, prova ad aumentare la temperatura.

Valori parametro validi

Parametro Gemini 1.0 Pro Vision Gemini 1.5 Pro Gemini 1.5 Flash
Top-K 1 - 40 (valore predefinito 32) Non supportata Non supportata
Top-P 0 - 1,0 (valore predefinito 1,0) 0 - 1,0 (valore predefinito 0,95) 0 - 1,0 (valore predefinito 0,95)
Temperatura 0 - 1,0 (valore predefinito 0,4) 0 - 2,0 (valore predefinito 1,0) 0 - 2,0 (valore predefinito 1,0)

Requisiti dei documenti

Il tipo MIME richiesto per un PDF è application/pdf.

Best practice per i PDF

Quando utilizzi i PDF, attieniti alle best practice e alle informazioni riportate di seguito per ottenere risultati:

  • I PDF vengono trattati come immagini, quindi una singola pagina di un PDF viene considerata come una singola pagina. dell'immagine.
    • Il numero di pagine supportate è limitato al numero di immagini di un modello che è in grado di supportare. Per Gemini 1.0 Pro Vision, il limite è 16. Per Gemini 1.5 Pro e Il limite di Gemini 1.5 Flash è 300. Se disponi di una di un documento, prendi in considerazione la possibilità di suddividerlo in più PDF per elaborarlo.
    • Quando utilizzi PDF come input, il costo segue i prezzi delle immagini di Gemini. Per Ad esempio, se includi un PDF di due pagine in una chiamata all'API Gemini, comporta una tariffa di input per l'elaborazione di due immagini.
  • Se il prompt contiene un singolo PDF, inserisci il PDF prima del testo .
  • Utilizza PDF creati con testo reso come testo anziché utilizzare testo nella scansione in formato Docker. Questo formato garantisce che il testo sia leggibile dalle macchine in modo che sia più facile del modello da modificare, cercare e manipolare rispetto ai PDF di immagini scansionati. Questo offre risultati ottimali quando si lavora con documenti molto testo, come 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 consentono di individuare in modo preciso testo o oggetti in formato PDF. Potrebbero restituire solo i conteggi approssimativi degli oggetti.
  • Accuratezza: i modelli potrebbero avere allucinazioni nell'interpretazione del testo scritto a mano. in documenti PDF.

Passaggi successivi