Anfragen an die Vertex AI API für Gemini senden

Senden Sie Anfragen an die Gemini API in Vertex AI. Verwenden Sie dazu ein SDK für Programmiersprachen oder die REST API, um mit der Erstellung einer generativen KI-Anwendung in Google Cloud zu beginnen.

Google Cloud-Konto erstellen

Für diese Kurzanleitung müssen Sie ein Google Cloud-Konto erstellen. Mit diesem Konto erhalten Sie ein Startguthaben von 300 $sowie die kostenlose Nutzung von mehr als 20 Produkten. Diese werden nicht mit dem Guthaben von 300 $verrechnet.

Jetzt kostenlos starten

Weitere Informationen zur Einrichtung in Google Cloud nach der Erstellung Ihres Kontos finden Sie unter In Google Cloud einrichten.

Umgebung einrichten

Wählen Sie einen der folgenden Tabs aus, um Ihre lokale Umgebung zum Senden einer Anfrage an die Vertex AI Gemini API einzurichten:

Python

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  7. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  8. Installieren oder aktualisieren Sie das Vertex AI SDK für Python, indem Sie den folgenden Befehl ausführen:

    pip3 install "google-cloud-aiplatform>=1.38"
    

    Optional: Wenn Sie Cloud Shell verwenden und aufgefordert werden, Cloud Shell zu autorisieren, klicken Sie auf Autorisieren.

    Weitere Informationen zum Installieren, Aktualisieren und Verwenden des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python installieren und Vertex AI SDK für Python API-Referenzdokumentation

Node.js

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  7. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  8. Installieren oder aktualisieren Sie in Cloud Shell das Vertex AI SDK für Node.js, indem Sie den folgenden Befehl ausführen:

    npm install @google-cloud/vertexai
    

    Weitere Informationen zur Installation und Verwendung des Vertex AI Node.js SDK finden Sie in der Referenzdokumentation zum Vertex AI SDK für Node.js.

Java

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  7. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  8. Wenn Sie google-cloud-vertexai als Abhängigkeit hinzufügen möchten, fügen Sie den entsprechenden Code für Ihre Umgebung hinzu:

    Maven mit BOM

    Fügen Sie Ihrem pom.xml den folgenden HTML hinzu:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>libraries-bom</artifactId>
          <version>26.32.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-vertexai</artifactId>
      </dependency>
    </dependencies>
            

    Maven ohne BOM

    Fügen Sie Ihrem pom.xml den folgenden HTML hinzu:

    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-vertexai</artifactId>
      <version>0.4.0</version>
    </dependency>
          

    Gradle without BOM

    Add the following to your build.gradle

    implementation 'com.google.cloud:google-cloud-vertexai:0.4.0'

    Weitere Informationen zur Installation und Verwendung des Vertex AI Java Development Kits (JDK) finden Sie in der Vertex AI JDK-Referenzdokumentation.

Go

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  7. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  8. Prüfen Sie die verfügbaren Go-Pakete für die Vertex AI API, um festzustellen, welches Paket die Anforderungen Ihres Projekts am besten erfüllt:

    • Paket cloud.google.com/go/vertexai (cloud.google.com/go/vertexai)

      vertexai ist ein von Menschen erstelltes Paket, das Zugriff auf gängige Funktionen und Features bietet.

      Dieses Paket wird als Ausgangspunkt für die meisten Entwickler empfohlen, die mit der Vertex AI API erstellen. Verwenden Sie stattdessen das automatisch generierte aiplatform, um auf Funktionen und zuzugreifen, die noch nicht von diesem Paket abgedeckt sind.

    • Paket cloud.google.com/go/aiplatform

      aiplatform ist ein automatisch generiertes Paket.

      Dieses Paket ist für Projekte gedacht, die Zugriff auf die Funktionen und Features der Vertex AI API benötigen, die noch nicht vom menschlichen vertexai-Paket bereitgestellt werden.

  9. Führen Sie einen der folgenden Befehle aus, um das gewünschte Go-Paket entsprechend den Anforderungen Ihres Projekts zu installieren:

    # Human authored package. Recommended for most developers.
    go get cloud.google.com/go/vertexai
    
    # Auto-generated package. go get cloud.google.com/go/aiplatform

    Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für Go finden Sie in der Referenzdokumentation zum Vertex AI SDK für Go.

C#

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  7. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  8. Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für C# finden Sie in der Referenzdokumentation zum Vertex AI SDK für C#.

REST

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  7. Konfigurieren Sie Umgebungsvariablen. Dazu geben Sie Folgendes ein. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
    MODEL_ID="gemini-1.0-pro-vision"
    PROJECT_ID="PROJECT_ID"
    
  8. Stellen Sie den Endpunkt bereit:
    gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
    

    Optional: Wenn Sie Cloud Shell verwenden und aufgefordert werden, Cloud Shell zu autorisieren, klicken Sie auf Autorisieren.

Nur-Text-Anfrage senden

Nachdem Sie Ihre lokale Umgebung eingerichtet haben, senden Sie eine Nur-Text-Anfrage an die Vertex AI Gemini API. Das folgende Beispiel gibt eine Liste möglicher Namen für ein Spezialgeschäft zurück.

Python

Erstellen Sie zum Senden eines Prompts eine Python-Datei (.py) und kopieren Sie den folgenden Code in die Datei. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Führen Sie dann die Python-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

import vertexai
from vertexai.generative_models import GenerativeModel

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

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

model = GenerativeModel(model_name="gemini-1.0-pro-002")

response = model.generate_content(
    "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?"
)

print(response.text)

Optional: Wenn Sie Cloud Shell verwenden und aufgefordert werden, Cloud Shell zu autorisieren, klicken Sie auf Autorisieren.

Weitere Informationen zum Installieren, Aktualisieren und Verwenden des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python installieren und Vertex AI SDK für Python API-Referenzdokumentation

Node.js

Erstellen Sie zum Senden eines Prompts eine Node.js-Datei (.js) und kopieren Sie den folgenden Code in die Datei. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Führen Sie anschließend die JavaScript-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

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

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

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

  const prompt =
    "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?";

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

Weitere Informationen zur Installation und Verwendung des Vertex AI Node.js SDK finden Sie in der Referenzdokumentation zum Vertex AI SDK für Node.js.

Java

Erstellen Sie zum Senden einer Prompt-Anfrage eine Java-Datei (.java) und kopieren Sie den folgenden Code in die Datei. Legen Sie your-google-cloud-project-id auf Ihre Google Cloud-Projekt-ID fest. Führen Sie anschließend die Java-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

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

public class TextInput {

  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.0-pro-002";
    String textPrompt =
        "What's a good name for a flower shop that specializes in selling bouquets of"
            + " dried flowers?";

    String output = textInput(projectId, location, modelName, textPrompt);
    System.out.println(output);
  }

  // Passes the provided text input to the Gemini model and returns the text-only response.
  // For the specified textPrompt, the model returns a list of possible store names.
  public static String textInput(
      String projectId, String location, String modelName, String textPrompt) 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)) {
      GenerativeModel model = new GenerativeModel(modelName, vertexAI);

      GenerateContentResponse response = model.generateContent(textPrompt);
      String output = ResponseHandler.getText(response);
      return output;
    }
  }
}

Weitere Informationen zur Installation und Verwendung des Vertex AI Java Development Kits (JDK) finden Sie in der Vertex AI JDK-Referenzdokumentation.

Go

Zum Senden einer Prompt-Anfrage erstellen Sie eine Go-Datei (.go) und kopieren den folgenden Code in die Datei. Ersetzen Sie projectID durch die ID Ihres Google Cloud-Projekts. Führen Sie anschließend die Go-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

import (
	"context"
	"encoding/json"
	"fmt"
	"io"

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

func generateContentFromText(w io.Writer, projectID string) error {
	location := "us-central1"
	modelName := "gemini-1.0-pro-vision-001"

	ctx := context.Background()
	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("error creating client: %w", err)
	}
	gemini := client.GenerativeModel(modelName)
	prompt := genai.Text(
		"What's a good name for a flower shop that specializes in selling bouquets of dried flowers?")

	resp, err := gemini.GenerateContent(ctx, prompt)
	if err != nil {
		return fmt.Errorf("error generating content: %w", err)
	}
	// See the JSON response in
	// https://pkg.go.dev/cloud.google.com/go/vertexai/genai#GenerateContentResponse.
	rb, err := json.MarshalIndent(resp, "", "  ")
	if err != nil {
		return fmt.Errorf("json.MarshalIndent: %w", err)
	}
	fmt.Fprintln(w, string(rb))
	return nil
}

Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für Go finden Sie in der Referenzdokumentation zum Vertex AI SDK für Go.

C#

Erstellen Sie zum Senden einer Prompt-Anfrage eine C#-Datei (.cs) und kopieren Sie den folgenden Code in die Datei. Legen Sie your-project-id auf Ihre Google Cloud-Projekt-ID fest. Führen Sie anschließend die C#-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.


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

public class TextInputSample
{
    public async Task<string> TextInput(
        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 = @"What's a good name for a flower shop that specializes in selling bouquets of dried flowers?";

        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = prompt }
                    }
                }
            }
        };

        GenerateContentResponse response = await predictionServiceClient.GenerateContentAsync(generateContentRequest);

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

        return responseText;
    }
}

Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für C# finden Sie in der Referenzdokumentation zum Vertex AI SDK für C#.

REST

Sie können diese Prompt-Anfrage über Cloud Shell, die Befehlszeile oder in einer IDE senden oder den REST-Aufruf gegebenenfalls in Ihre Anwendung einbetten.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:generateContent -d \
$'{
  "contents": {
    "role": "user",
    "parts": [
      {
        "text": "What\'s a good name for a flower shop that specializes in selling bouquets of dried flowers?"
      }
    ]
  }
}'

Das Modell gibt eine Antwort zurück. Beachten Sie, dass die Antwort in Abschnitten generiert wird, wobei jeder Abschnitt separat auf Sicherheit hin bewertet wird.

Weitere Informationen finden Sie in der Referenzdokumentation zu Generative AI REST und RPC.

Anfrage mit einem Bild senden

Nachdem Sie Ihre lokale Umgebung eingerichtet haben, senden Sie eine Anfrage mit Text und einem Bild an die Vertex AI Gemini API. Im folgenden Beispiel wird eine Beschreibung des bereitgestellten Bilds zurückgegeben (Bild für Java-Beispiel).

Python

Erstellen Sie zum Senden eines Prompts eine Python-Datei (.py) und kopieren Sie den folgenden Code in die Datei. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Führen Sie dann die Python-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

import vertexai

from vertexai.generative_models import GenerativeModel, Part

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

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

model = GenerativeModel(model_name="gemini-1.0-pro-vision-001")

response = model.generate_content(
    [
        Part.from_uri(
            "gs://cloud-samples-data/generative-ai/image/scones.jpg",
            mime_type="image/jpeg",
        ),
        "What is shown in this image?",
    ]
)

print(response.text)

Optional: Wenn Sie Cloud Shell verwenden und aufgefordert werden, Cloud Shell zu autorisieren, klicken Sie auf Autorisieren.

Weitere Informationen zum Installieren, Aktualisieren und Verwenden des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python installieren und Vertex AI SDK für Python API-Referenzdokumentation

Node.js

Erstellen Sie zum Senden eines Prompts eine Node.js-Datei (.js) und kopieren Sie den folgenden Code in die Datei. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Führen Sie anschließend die JavaScript-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

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

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function createNonStreamingMultipartContent(
  projectId = 'PROJECT_ID',
  location = 'us-central1',
  model = 'gemini-1.0-pro-vision-001',
  image = 'gs://generativeai-downloads/images/scones.jpg',
  mimeType = 'image/jpeg'
) {
  // Initialize Vertex with your Cloud project and location
  const vertexAI = new VertexAI({project: projectId, location: location});

  // Instantiate the model
  const generativeVisionModel = vertexAI.getGenerativeModel({
    model: model,
  });

  // For images, the SDK supports both Google Cloud Storage URI and base64 strings
  const filePart = {
    fileData: {
      fileUri: image,
      mimeType: mimeType,
    },
  };

  const textPart = {
    text: 'what is shown in this image?',
  };

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

  console.log('Prompt Text:');
  console.log(request.contents[0].parts[1].text);

  console.log('Non-Streaming Response Text:');
  // Create the response stream
  const responseStream =
    await generativeVisionModel.generateContentStream(request);

  // Wait for the response stream to complete
  const aggregatedResponse = await responseStream.response;

  // Select the text from the response
  const fullTextResponse =
    aggregatedResponse.candidates[0].content.parts[0].text;

  console.log(fullTextResponse);
}

Weitere Informationen zur Installation und Verwendung des Vertex AI Node.js SDK finden Sie in der Referenzdokumentation zum Vertex AI SDK für Node.js.

Java

Erstellen Sie zum Senden einer Prompt-Anfrage eine Java-Datei (.java) und kopieren Sie den folgenden Code in die Datei. Legen Sie your-google-cloud-project-id auf Ihre Google Cloud-Projekt-ID fest. Führen Sie anschließend die Java-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

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 java.io.IOException;

public class Quickstart {

  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.0-pro-vision-001";

    String output = quickstart(projectId, location, modelName);
    System.out.println(output);
  }

  // Analyzes the provided Multimodal input.
  public static String quickstart(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 imageUri = "gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png";

      GenerativeModel model = new GenerativeModel(modelName, vertexAI);
      GenerateContentResponse response = model.generateContent(ContentMaker.fromMultiModalData(
          PartMaker.fromMimeTypeAndData("image/png", imageUri),
          "What's in this photo"
      ));

      return response.toString();
    }
  }
}

Weitere Informationen zur Installation und Verwendung des Vertex AI Java Development Kits (JDK) finden Sie in der Vertex AI JDK-Referenzdokumentation.

Go

Zum Senden einer Prompt-Anfrage erstellen Sie eine Go-Datei (.go) und kopieren den folgenden Code in die Datei. Ersetzen Sie projectID durch die ID Ihres Google Cloud-Projekts. Führen Sie anschließend die Go-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

import (
	"context"
	"encoding/json"
	"fmt"
	"io"

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

func tryGemini(w io.Writer, projectID string, location string, modelName string) error {
	// location := "us-central1"
	// modelName := "gemini-1.0-pro-vision-001"

	ctx := context.Background()
	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("error creating client: %w", err)
	}
	gemini := client.GenerativeModel(modelName)

	img := genai.FileData{
		MIMEType: "image/jpeg",
		FileURI:  "gs://generativeai-downloads/images/scones.jpg",
	}
	prompt := genai.Text("What is in this image?")

	resp, err := gemini.GenerateContent(ctx, img, prompt)
	if err != nil {
		return fmt.Errorf("error generating content: %w", err)
	}
	rb, err := json.MarshalIndent(resp, "", "  ")
	if err != nil {
		return fmt.Errorf("json.MarshalIndent: %w", err)
	}
	fmt.Fprintln(w, string(rb))
	return nil
}

Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für Go finden Sie in der Referenzdokumentation zum Vertex AI SDK für Go.

C#

Erstellen Sie zum Senden einer Prompt-Anfrage eine C#-Datei (.cs) und kopieren Sie den folgenden Code in die Datei. Legen Sie your-project-id auf Ihre Google Cloud-Projekt-ID fest. Führen Sie anschließend die C#-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.


using Google.Api.Gax.Grpc;
using Google.Cloud.AIPlatform.V1;
using System.Text;
using System.Threading.Tasks;

public class GeminiQuickstart
{
    public async Task<string> GenerateContent(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.0-pro-vision"
    )
    {
        // Create client
        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();

        // Initialize content request
        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            GenerationConfig = new GenerationConfig
            {
                Temperature = 0.4f,
                TopP = 1,
                TopK = 32,
                MaxOutputTokens = 2048
            },
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = "What's in this photo?" },
                        new Part { FileData = new() { MimeType = "image/png", FileUri = "gs://generativeai-downloads/images/scones.jpg" } }
                    }
                }
            }
        };

        // Make the request, returning a streaming response
        using PredictionServiceClient.StreamGenerateContentStream response = predictionServiceClient.StreamGenerateContent(generateContentRequest);

        StringBuilder fullText = new();

        // Read streaming responses from server until complete
        AsyncResponseStream<GenerateContentResponse> responseStream = response.GetResponseStream();
        await foreach (GenerateContentResponse responseItem in responseStream)
        {
            fullText.Append(responseItem.Candidates[0].Content.Parts[0].Text);
        }

        return fullText.ToString();
    }
}

Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für C# finden Sie in der Referenzdokumentation zum Vertex AI SDK für C#.

REST

Sie können diese Prompt-Anfrage über Cloud Shell, die Befehlszeile oder in einer IDE senden oder den REST-Aufruf gegebenenfalls in Ihre Anwendung einbetten.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
  "contents": {
    "role": "user",
    "parts": [
      {
      "fileData": {
        "mimeType": "image/jpeg",
        "fileUri": "gs://generativeai-downloads/images/scones.jpg"
        }
      },
      {
        "text": "Describe this picture."
      }
    ]
  }
}'

Das Modell gibt eine Antwort zurück. Beachten Sie, dass die Antwort in Abschnitten generiert wird, wobei jeder Abschnitt separat auf Sicherheit hin bewertet wird.

Weitere Informationen finden Sie in der Referenzdokumentation zu Generative AI REST und RPC.

Anfrage mit Audio und Video senden

Nachdem Sie Ihre lokale Umgebung eingerichtet haben, senden Sie eine Anfrage mit Text, Audio und Video an die Vertex AI Gemini API. Im folgenden Beispiel wird eine Beschreibung des bereitgestellten Videos zurückgegeben, einschließlich aller wichtigen Inhalte aus dem Audiotrack.

Python

Erstellen Sie zum Senden eines Prompts eine Python-Datei (.py) und kopieren Sie den folgenden Code in die Datei. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Führen Sie dann die Python-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.


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 = """
Provide a description of the video.
The description should also contain anything important which people say in the video.
"""

video_file_uri = "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
video_file = Part.from_uri(video_file_uri, mime_type="video/mp4")

contents = [video_file, prompt]

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

Optional: Wenn Sie Cloud Shell verwenden und aufgefordert werden, Cloud Shell zu autorisieren, klicken Sie auf Autorisieren.

Weitere Informationen zum Installieren, Aktualisieren und Verwenden des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python installieren und Vertex AI SDK für Python API-Referenzdokumentation

Node.js

Erstellen Sie zum Senden eines Prompts eine Node.js-Datei (.js) und kopieren Sie den folgenden Code in die Datei. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Führen Sie anschließend die JavaScript-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

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

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

  const generativeModel = vertexAI.getGenerativeModel({
    model: 'gemini-1.5-pro-preview-0409',
  });

  const filePart = {
    file_data: {
      file_uri: 'gs://cloud-samples-data/generative-ai/video/pixel8.mp4',
      mime_type: 'video/mp4',
    },
  };
  const textPart = {
    text: `
    Provide a description of the video.
    The description should also contain anything important which people say in the video.`,
  };

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

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

Weitere Informationen zur Installation und Verwendung des Vertex AI Node.js SDK finden Sie in der Referenzdokumentation zum Vertex AI SDK für Node.js.

Java

Erstellen Sie zum Senden einer Prompt-Anfrage eine Java-Datei (.java) und kopieren Sie den folgenden Code in die Datei. Legen Sie your-google-cloud-project-id auf Ihre Google Cloud-Projekt-ID fest. Führen Sie anschließend die Java-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.


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

  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";

    videoAudioInput(projectId, location, modelName);
  }

  // Analyzes the given video input, including its audio track.
  public static String videoAudioInput(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 videoUri = "gs://cloud-samples-data/generative-ai/video/pixel8.mp4";

      GenerativeModel model = new GenerativeModel(modelName, vertexAI);
      GenerateContentResponse response = model.generateContent(
          ContentMaker.fromMultiModalData(
              "Provide a description of the video.\n The description should also "
                  + "contain anything important which people say in the video.",
              PartMaker.fromMimeTypeAndData("video/mp4", videoUri)
          ));

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

      return output;
    }
  }
}

Weitere Informationen zur Installation und Verwendung des Vertex AI Java Development Kits (JDK) finden Sie in der Vertex AI JDK-Referenzdokumentation.

Go

Zum Senden einer Prompt-Anfrage erstellen Sie eine Go-Datei (.go) und kopieren den folgenden Code in die Datei. Ersetzen Sie projectID durch die ID Ihres Google Cloud-Projekts. Führen Sie anschließend die Go-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.

import (
	"context"
	"errors"
	"fmt"
	"io"
	"mime"
	"path/filepath"

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

// generateMultimodalContent shows how to send video and text prompts to a model, writing the response to
// the provided io.Writer.
// video is a Google Cloud Storage path starting with "gs://"
func generateMultimodalContent(w io.Writer, prompt, video, projectID, location, modelName string) error {
	// prompt := `
	// 		Provide a description of the video.
	// 		The description should also contain anything important which people say in the video.
	// `
	// video := "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
	// location := "us-central1"
	// modelName := "gemini-1.5-pro-preview-0409"
	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)

	// Given a video file URL, prepare video file as genai.Part
	part := genai.FileData{
		MIMEType: mime.TypeByExtension(filepath.Ext(video)),
		FileURI:  video,
	}

	res, err := model.GenerateContent(ctx, part, genai.Text(prompt))
	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
}

Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für Go finden Sie in der Referenzdokumentation zum Vertex AI SDK für Go.

C#

Erstellen Sie zum Senden einer Prompt-Anfrage eine C#-Datei (.cs) und kopieren Sie den folgenden Code in die Datei. Legen Sie your-project-id auf Ihre Google Cloud-Projekt-ID fest. Führen Sie anschließend die C#-Datei über die Befehlszeile oder in einer IDE aus oder betten Sie den Code gegebenenfalls in Ihre Anwendung ein.


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

public class VideoInputWithAudio
{
    public async Task<string> DescribeVideo(
        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 = @"Provide a description of the video.
The description should also contain anything important which people say in the video.";

        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 = "video/mp4", FileUri = "gs://cloud-samples-data/generative-ai/video/pixel8.mp4" }}
                    }
                }
            }
        };

        GenerateContentResponse response = await predictionServiceClient.GenerateContentAsync(generateContentRequest);

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

        return responseText;
    }
}

Weitere Informationen zur Installation und Verwendung des Vertex AI SDK für C# finden Sie in der Referenzdokumentation zum Vertex AI SDK für C#.

REST

Sie können diese Prompt-Anfrage über Cloud Shell, die Befehlszeile oder in einer IDE senden oder den REST-Aufruf gegebenenfalls in Ihre Anwendung einbetten.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
  "contents": {
    "role": "user",
    "parts": [
      {
      "fileData": {
        "mimeType": "video/mp4",
        "fileUri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
        }
      },
      {
        "text": "Provide a description of the video. The description should also contain anything important which people say in the video."
      }
    ]
  }
}'

Das Modell gibt eine Antwort zurück. Beachten Sie, dass die Antwort in Abschnitten generiert wird, wobei jeder Abschnitt separat auf Sicherheit hin bewertet wird.

Weitere Informationen finden Sie in der Referenzdokumentation zu Generative AI REST und RPC.

Nächste Schritte