Verständnis von Dokumenten

Sie können Gemini-Anfragen PDFs hinzufügen, um Aufgaben auszuführen, bei denen die Inhalte der enthaltenen PDFs berücksichtigt werden müssen. Auf dieser Seite erfahren Sie, wie Sie mithilfe der Google Cloud Console und der Vertex AI API Ihren Anfragen an Gemini in Vertex AI PDFs hinzufügen.

Unterstützte Modelle

In der folgenden Tabelle sind die Modelle aufgeführt, die das Verständnis von Dokumenten unterstützen:

Modell Details der PDF-Modalität

Gemini 1.5 Flash

Zur Modellkarte „Gemini 1.5 Flash“

Maximale Seitenzahl pro Prompt: 300

Maximale Größe der PDF-Datei: 30 MB

Gemini 1.5 Pro,

Zur Modellkarte „Gemini 1.5 Pro“

Maximale Seitenzahl pro Prompt: 300

Maximale Größe der PDF-Datei: 30 MB

Gemini 1.0 Pro Vision

Zur Modellkarte „Gemini 1.0 Pro Vision“

Maximale Seitenzahl pro Prompt: 16

Maximale Größe der PDF-Datei: 30 MB

Eine Liste der von Gemini-Modellen unterstützten Sprachen finden Sie in den Modellinformationen der Google-Modelle. Weitere Informationen zum Entwerfen multimodaler Prompts finden Sie unter Multimodale Prompts entwerfen. Wenn Sie nach einer Möglichkeit suchen, Gemini direkt über Ihre mobilen und Web-Apps zu verwenden, finden Sie weitere Informationen in den Google AI SDKs für Android, Swift und Web.

Einer Anfrage Dokumente hinzufügen

Sie können Anfragen in Gemini eine einzelne PDF-Datei hinzufügen.

Einzelne PDF-Datei

Im folgenden Tab wird gezeigt, wie Sie mit dem Python SDK eine PDF-Datei in eine Prompt-Anfrage einfügen. Dieses PDF-Beispiel funktioniert mit allen multimodalen Gemini-Modellen.

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der API-Referenzdokumentation zur Vertex AI SDK for Python.

Streaming- und Nicht-Streaming-Antworten

Sie können auswählen, ob das Modell Streaming-Antworten oder Nicht-Streaming-Antworten generiert. Bei Streamingantworten erhalten Sie jede Antwort, sobald ihr Ausgabetoken generiert wurde. Bei Nicht-Streamingantworten erhalten Sie alle Antworten, nachdem alle Ausgabetokens generiert wurden.

Verwenden Sie für eine Streamingantwort den Parameter stream in generate_content.

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

Entfernen Sie für eine Nicht-Streamingantwort den Parameter oder setzen Sie den Parameter auf False.

Beispielcode

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(model_name="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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der Vertex AI-Kurzanleitung. Weitere Informationen finden Sie in der Referenzdokumentation zum Vertex AI Java SDK für Gemini.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Streaming- und Nicht-Streaming-Antworten

Sie können auswählen, ob das Modell Streaming-Antworten oder Nicht-Streaming-Antworten generiert. Bei Streamingantworten erhalten Sie jede Antwort, sobald ihr Ausgabetoken generiert wurde. Bei Nicht-Streamingantworten erhalten Sie alle Antworten, nachdem alle Ausgabetokens generiert wurden.

Verwenden Sie für eine Nicht-Streamingantwort die Methode generateContentStream.

  public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
  

Verwenden Sie für eine Nicht-Streamingantwort die Methode generateContent.

  public GenerateContentResponse generateContent(Content content)
  

Beispielcode


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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Node.js in der Kurzanleitung zur generativen KI mit dem Node.js SDK. Weitere Informationen finden Sie in der Referenzdokumentation zu Node.js SDK for Gemini.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Streaming- und Nicht-Streaming-Antworten

Sie können auswählen, ob das Modell Streaming-Antworten oder Nicht-Streaming-Antworten generiert. Bei Streamingantworten erhalten Sie jede Antwort, sobald ihr Ausgabetoken generiert wurde. Bei Nicht-Streamingantworten erhalten Sie alle Antworten, nachdem alle Ausgabetokens generiert wurden.

Verwenden Sie für eine Nicht-Streamingantwort die Methode generateContentStream.

  const streamingResp = await generativeModel.generateContentStream(request);
  

Verwenden Sie für eine Nicht-Streamingantwort die Methode generateContent.

  const streamingResp = await generativeModel.generateContent(request);
  

Beispielcode

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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Go in der Vertex AI-Kurzanleitung. Weitere Informationen finden Sie in der Referenzdokumentation zum Vertex AI Go SDK für Gemini.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Streaming- und Nicht-Streaming-Antworten

Sie können auswählen, ob das Modell Streaming-Antworten oder Nicht-Streaming-Antworten generiert. Bei Streamingantworten erhalten Sie jede Antwort, sobald ihr Ausgabetoken generiert wurde. Bei Nicht-Streamingantworten erhalten Sie alle Antworten, nachdem alle Ausgabetokens generiert wurden.

Verwenden Sie für eine Nicht-Streamingantwort die Methode GenerateContentStream.

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

Verwenden Sie für eine Nicht-Streamingantwort die Methode GenerateContent.

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

Beispielcode

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#

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von C# in der Vertex AI-Kurzanleitung. Weitere Informationen finden Sie in der Referenzdokumentation zu Vertex AI C#.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Streaming- und Nicht-Streaming-Antworten

Sie können auswählen, ob das Modell Streaming-Antworten oder Nicht-Streaming-Antworten generiert. Bei Streamingantworten erhalten Sie jede Antwort, sobald ihr Ausgabetoken generiert wurde. Bei Nicht-Streamingantworten erhalten Sie alle Antworten, nachdem alle Ausgabetokens generiert wurden.

Verwenden Sie für eine Nicht-Streamingantwort die Methode StreamGenerateContent.

  public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
  

Verwenden Sie für eine Nicht-Streamingantwort die Methode GenerateContentAsync.

  public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
  

Weitere Informationen dazu, wie der Server Antworten streamen kann, finden Sie unter Streaming-RPCs.

Beispielcode


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

Nachdem Sie Ihre Umgebung eingerichtet haben, können Sie mit REST einen Text-Prompt testen. Im folgenden Beispiel wird eine Anfrage an den Publisher gesendet Modellendpunkt zu erstellen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll. Geben Sie eine unterstützte Region ein. Eine vollständige Liste der unterstützten Regionen finden Sie unter Verfügbare Standorte.

    Klicken Sie, um eine unvollständige Liste der verfügbaren Regionen einzublenden

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: Ihre Projekt-ID.
  • FILE_URI: Der Cloud Storage-URI der Datei, die in den Prompt aufgenommen werden soll. Das Bucket-Objekt muss entweder öffentlich lesbar sein oder sich im selben Google Cloud-Projekt befinden, von dem die Anfrage gesendet wird. Außerdem müssen Sie Gibt den Medientyp (mimeType) der Datei an.

    Wenn Sie keine PDF-Datei in Cloud Storage haben, können Sie die folgende öffentlich zugängliche Datei: gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf mit dem MIME-Typ application/pdf. Öffnen Sie die Beispiel-PDF-Datei, um diese PDF-Datei anzusehen.

  • MIME_TYPE: Der Medientyp der Datei, die in den Feldern data oder fileUri angegeben wurde. Unter anderem sind folgende Werte zulässig:

    Zum Maximieren von MIME-Typen klicken

    • 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: Die Textanleitung, die in den Prompt eingefügt werden soll. Beispiel:You are a very professional document summarization specialist. Please summarize the given document.

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

$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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Beachten Sie Folgendes in der URL für dieses Beispiel:
  • Mit der Methode generateContent können Sie anfordern, dass die Antwort zurückgegeben wird, nachdem sie vollständig generiert wurde. Um die Wahrnehmung von Latenz für menschliche Zielgruppen zu verringern, streame die Antwort, während sie mithilfe der Methode streamGenerateContent erzeugt wird.
  • Die multimodale Modell-ID befindet sich am Ende der URL vor der Methode (z. B. gemini-1.5-flash oder gemini-1.0-pro-vision). Dieses Beispiel unterstützt möglicherweise auch andere Modelle.

Console

So senden Sie einen multimodalen Prompt mithilfe der Google Cloud Console:

  1. Rufen Sie im Bereich „Vertex AI“ der Google Cloud Console die Seite Vertex AI Studio auf.

    Zu Vertex AI Studio

  2. Klicken Sie unter Prompt-Design (in einem Schritt) auf Öffnen.
  3. Konfigurieren Sie Modell und Parameter:

    • Modell: Wählen Sie ein Modell aus.
    • Region: Wählen Sie die Region aus, die Sie verwenden möchten.
    • Temperaturen: Geben Sie über den Schieberegler oder das Textfeld einen Temperaturwert ein.

      Die Temperatur wird für die Probenahme während der Antwortgenerierung verwendet. Dies passiert, wenn topP und topK angewendet werden. Die Temperatur bestimmt den Grad der Zufälligkeit bei der Tokenauswahl. Niedrigere Temperaturen eignen sich gut für Prompts, die eine weniger offene oder kreative Antwort erfordern, während höhere Temperaturen zu vielfältigeren oder kreativeren Ergebnissen führen können. Eine Temperatur von 0 bedeutet, dass immer die Tokens mit der höchsten Wahrscheinlichkeit ausgewählt werden. In diesem Fall sind die Antworten auf einen bestimmten Prompt größtenteils deterministisch, aber eine gewisse Variation ist dennoch möglich.

      Wenn das Modell eine zu allgemeine oder zu kurze Antwort zurückgibt, oder wenn das Modell eine Fallback-Antwort ausgibt, versuchen Sie, die Temperatur zu erhöhen.

    • Token-Limit: Verwenden Sie den Schieberegler oder das Textfeld, um einen Wert für das maximale Ausgabelimit einzugeben.

      Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa vier Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.

      Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für längere Antworten an.

    • Stoppsequenz hinzufügen (optional): Geben Sie eine Stoppsequenz ein, die aus einer Reihe von Zeichen (einschließlich Leerzeichen) besteht, die die Antwortgenerierung beendet, wenn das Modell darauf stößt. Die Sequenz ist nicht Teil der Antwort. Sie können bis zu fünf Stoppsequenzen hinzufügen.
  4. Optional: Klicken Sie zum Konfigurieren erweiterter Parameter auf Erweitert und konfigurieren Sie so:
  5. Zum Maximieren erweiterter Konfigurationen klicken

    • Top-K: Sie können den Schieberegler oder das Textfeld verwenden, um einen Wert für Top-K einzugeben. (wird für Gemini 1.5 nicht unterstützt.)

      Der Wert „Top-K“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Ein „Top-K“ von 1 bedeutet, dass das nächste ausgewählte Token unter den Tokens im Modell-Vokabular (auch als gierige Decodierung bezeichnet) am wahrscheinlichsten ist, während ein „Top-K“ von 3 bedeutet, dass das nächste Token mithilfe der Temperatur aus den drei wahrscheinlichsten Tokens ausgewählt wird.

      Für jeden Tokenauswahlschritt werden die „Top-K“-Tokens mit den höchsten Wahrscheinlichkeiten abgetastet. Anschließend werden Tokens weiter auf der Grundlage von „Top-P“ gefiltert, wobei das endgültige Token mithilfe von Temperaturproben ausgewählt wird.

      Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

    • Top-P: Verwenden Sie den Schieberegler oder das Textfeld, um einen Wert für „Top-P“ einzugeben. Tokens werden vom wahrscheinlichsten bis zum am wenigsten wahrscheinlichen Token ausgewählt, bis die Summe ihrer Wahrscheinlichkeiten dem Wert von „Top-P“ entspricht. Für die Ergebnisse der geringsten Variablen legen Sie Top-P auf 0 fest.
    • Fundierung aktivieren: Fundierung wird für multimodale Prompts nicht unterstützt.
  6. So laden Sie Medien wie eine PDF-Datei hoch:
    1. Klicken Sie auf Medien einfügen und wählen Sie eine Quelle aus. Wenn Sie Google Drive als Quelle auswählen, müssen Sie ein Konto auswählen und Vertex AI Studio die Einwilligung erteilen, bei der ersten Auswahl dieser Option auf Ihr Konto zuzugreifen. Sie können mehrere Mediendateien mit einer Gesamtgröße von bis zu 10 MB hochladen. Eine einzelne Datei darf nicht größer als 7 MB sein.
    2. Klicken Sie auf die Datei, die Sie hinzufügen möchten.
    3. Klicken Sie auf Auswählen. Die Miniaturansicht der Datei wird im Bereich Prompt angezeigt.
  7. Geben Sie Ihren Prompt in den Bereich Prompt ein. Das Modell verwendet die vorherigen Nachrichten als Kontext für neue Antworten.
  8. Klicken Sie auf Senden und die Antwort wird generiert.
  9. Optional: Klicken Sie auf Speichern, um den Prompt unter Meine Prompts zu speichern.
  10. Optional: Klicken Sie auf Code abrufen, um den Python-Code oder einen curl-Befehl für den Prompt abzurufen.
  11. Optional: Wenn Sie alle vorherigen Nachrichten löschen möchten, klicken Sie auf Unterhaltung löschen.

Modellparameter festlegen

Die folgenden Modellparameter können für multimodale Modelle festgelegt werden:

Top-P

Der Wert „Top-P“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Die Tokens werden von den wahrscheinlichsten (siehe „Top-K“) bis zu den unwahrscheinlichsten Werten ausgewählt, bis die Summe ihrer Wahrscheinlichkeiten dem „Top-P“-Wert entspricht. Beispiel: Wenn die Tokens A, B und C eine Wahrscheinlichkeit von 0,3, 0,2 und 0,1 haben und der „Top-P“-Wert 0.5 ist, wählt das Modell anhand der Temperatur entweder A oder B als das nächste Token und C als Kandidaten ausschließen.

Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

Top-K

Der Wert „Top-K“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Ein „Top-K“ von 1 bedeutet, dass das nächste ausgewählte Token unter den Tokens im Modell-Vokabular (auch als gierige Decodierung bezeichnet) am wahrscheinlichsten ist, während ein „Top-K“ von 3 bedeutet, dass das nächste Token mithilfe der Temperatur aus den drei wahrscheinlichsten Tokens ausgewählt wird.

Für jeden Tokenauswahlschritt werden die „Top-K“-Tokens mit den höchsten Wahrscheinlichkeiten abgetastet. Anschließend werden Tokens weiter auf der Grundlage von „Top-P“ gefiltert, wobei das endgültige Token mithilfe von Temperaturproben ausgewählt wird.

Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

Temperatur

Die Temperatur wird für die Probenahme während der Antwortgenerierung verwendet. Dies passiert, wenn topP und topK angewendet werden. Die Temperatur bestimmt den Grad der Zufälligkeit bei der Tokenauswahl. Niedrigere Temperaturen eignen sich gut für Prompts, die eine weniger offene oder kreative Antwort erfordern, während höhere Temperaturen zu vielfältigeren oder kreativeren Ergebnissen führen können. Eine Temperatur von 0 bedeutet, dass immer die Tokens mit der höchsten Wahrscheinlichkeit ausgewählt werden. In diesem Fall sind die Antworten auf einen bestimmten Prompt größtenteils deterministisch, aber eine gewisse Variation ist dennoch möglich.

Wenn das Modell eine zu allgemeine oder zu kurze Antwort zurückgibt, oder wenn das Modell eine Fallback-Antwort ausgibt, versuchen Sie, die Temperatur zu erhöhen.

Gültige Parameterwerte

Parameter Gemini 1.0 Pro Vision Gemini 1.5 Pro, Gemini 1.5 Flash
Top-K 1 - 40 (Standard 32) Nicht unterstützt Nicht unterstützt
Top-P 0 - 1,0 (Standard 1,0) 0 - 1,0 (Standard 0,95) 0 - 1,0 (Standard 0,95)
Temperatur 0 - 1,0 (Standard 0,4) 0 - 2,0 (Standard 1,0) 0 - 2,0 (Standard 1,0)

Anforderungen an Dokumente

Der erforderliche MIME-Typ für eine PDF-Datei ist application/pdf.

Best Practices für PDF

Beachten Sie bei der Verwendung von PDFs die folgenden Best Practices und Informationen, um die besten Ergebnisse zu erzielen.

  • PDFs werden als Bilder behandelt, sodass eine einzelne Seite einer PDF-Datei als ein einzelnes Bild behandelt wird.
    • Die Anzahl der unterstützten Seiten ist auf die Anzahl der Bilder beschränkt, die ein Modell unterstützen kann. Bei Gemini 1.0 Pro Vision ist das Limit 16. Für Gemini 1.5 Pro und Gemini 1.5 Flash beträgt das Limit 300. Wenn Sie ein langes Dokument haben, sollten Sie es in mehrere PDFs aufteilen, um es zu verarbeiten.
    • Wenn Sie PDFs als Eingabe verwenden, entsprechen die Kosten den Gemini-Bildpreisen. Wenn Sie beispielsweise eine zweiseitige PDF in einen Gemini API-Aufruf einfügen, wird Ihnen eine Eingabegebühr für die Verarbeitung von zwei Bildern berechnet.
  • Wenn Ihr Prompt eine einzelne PDF-Datei enthält, platzieren Sie die PDF-Datei vor dem Text-Prompt.
  • Verwenden Sie PDFs, die mit Text erstellt wurden, der als Text gerendert wird, anstatt Text in gescannten Bildern zu verwenden. Dieses Format sorgt dafür, dass Text maschinenlesbar ist, damit das Modell im Vergleich zu gescannten Bild-PDFs einfacher bearbeiten, suchen und ändern kann. Dies liefert optimale Ergebnisse bei der Arbeit mit textintensiven Dokumenten wie Verträgen.

Beschränkungen

Multimodale Gemini-Modelle sind zwar in vielen multimodalen Anwendungsfällen nützlich, aber es ist wichtig, die Einschränkungen der Modelle zu verstehen:

  • Räumliche Logik: Die Modelle finden Text oder Objekte in PDFs nicht genau. Sie geben möglicherweise nur eine ungefähre Anzahl an Objekten zurück.
  • Genauigkeit: Die Modelle können bei der Interpretation von handschriftlichem Text in PDF-Dokumenten halluzinieren.

Nächste Schritte