Envoyer des requêtes à l'API Vertex AI pour Gemini

Envoyez des requêtes à l'API Gemini dans Vertex AI à l'aide d'un SDK de langage de programmation ou de l'API REST pour commencer à créer votre application d'IA générative sur Google Cloud.

Créer un compte Google Cloud pour commencer

Pour essayer ce guide de démarrage rapide, vous devez créer un compte Google Cloud. Avec ce compte, vous bénéficiez d'un crédit de 300 $ et de l'utilisation gratuite de plus de 20 produits, non déduits de votre crédit de 300 $.

Essai gratuit

Pour en savoir plus sur la configuration dans Google Cloud après la création de votre compte, consultez la page Configurer Google Cloud.

Configurer votre environnement

Pour configurer votre environnement local d'envoi de requêtes à l'API Vertex AI Gemini, sélectionnez l'un des onglets suivants :

Python

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Activez l'API Vertex AI

    Activer l'API

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Activez l'API Vertex AI

    Activer l'API

  6. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  7. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login
  8. Installez ou mettez à jour le SDK Vertex AI pour Python en exécutant la commande suivante :

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

    Facultatif : Si vous utilisez Cloud Shell et que vous êtes invité à l'autoriser, cliquez sur Autoriser.

    Pour en savoir plus sur l'installation, la mise à jour et l'utilisation du SDK Vertex AI pour Python, consultez les pages suivantes : Installer le SDK Vertex AI pour Python et Documentation de référence de l'API SDK Vertex AI pour Python.

Node.js

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Activez l'API Vertex AI

    Activer l'API

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Activez l'API Vertex AI

    Activer l'API

  6. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  7. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login
  8. Dans Cloud Shell, installez ou mettez à jour le SDK Vertex Generative AI pour Node.js en exécutant la commande suivante :

    npm install @google-cloud/vertexai
    

    Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Node.js, consultez la documentation de référence du SDK Vertex AI pour Node.js.

Java

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Activez l'API Vertex AI

    Activer l'API

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Activez l'API Vertex AI

    Activer l'API

  6. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  7. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login
  8. Pour ajouter google-cloud-vertexai en tant que dépendance, ajoutez le code approprié pour votre environnement :

    Maven avec BOM

    Ajoutez le code HTML suivant à votre fichier pom.xml :

    <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 sans BOM

    Ajoutez le code HTML suivant à votre fichier pom.xml :

    <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'

    Pour en savoir plus sur l'installation et l'utilisation du kit de développement Java Vertex AI (JDK), consultez la documentation de référence sur le JDK Vertex AI.

Go

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Activez l'API Vertex AI

    Activer l'API

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Activez l'API Vertex AI

    Activer l'API

  6. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  7. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login
  8. Consultez les packages Go de l'API Vertex Generative AI disponibles pour identifier celui qui répond le mieux aux besoins de votre projet :

    • Package cloud.google.com/go/vertexai (recommandé)

      vertexai est un package créé manuellement qui permet d'accéder aux fonctionnalités courantes.

      Ce package est recommandé comme point de départ pour la plupart des développeurs qui utilisent l'API Vertex Generative AI. Pour accéder à des fonctionnalités qui ne sont pas encore couvertes par ce package, utilisez plutôt le package aiplatform généré automatiquement.

    • Package cloud.google.com/go/aiplatform

      aiplatform est un package généré automatiquement.

      Ce package est destiné aux projets nécessitant un accès aux fonctionnalités de l'API Vertex Generative AI et à des fonctionnalités qui ne sont pas encore fournies par le package vertexai créé manuellement.

  9. Installez le package Go souhaité en fonction des besoins de votre projet en exécutant l'une des commandes suivantes :

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

    Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Go, consultez la documentation de référence du SDK Vertex AI pour Go.

C#

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Activez l'API Vertex AI

    Activer l'API

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Activez l'API Vertex AI

    Activer l'API

  6. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  7. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login
  8. Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour C#, consultez la documentation de référence sur le SDK Vertex AI pour C#.

REST

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Activez l'API Vertex AI

    Activer l'API

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Activez l'API Vertex AI

    Activer l'API

  6. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  7. Configurez des variables d'environnement en saisissant les informations suivantes. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.
    MODEL_ID="gemini-1.0-pro-vision"
    PROJECT_ID="PROJECT_ID"
    
  8. Provisionnez le point de terminaison :
    gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
    

    Facultatif : Si vous utilisez Cloud Shell et que vous êtes invité à l'autoriser, cliquez sur Autoriser.

Envoyer une requête uniquement basé sur du texte

Après avoir configuré votre environnement local, envoyez une requête en texte uniquement à l'API Vertex AI Gemini. L'exemple suivant renvoie une liste de noms possibles pour un magasin de fleurs spécialisé.

Python

Pour envoyer une requête, créez un fichier Python (.py) et copiez-y le code suivant. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Exécutez ensuite le fichier Python à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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)

Facultatif : Si vous utilisez Cloud Shell et que vous êtes invité à l'autoriser, cliquez sur Autoriser.

Pour en savoir plus sur l'installation, la mise à jour et l'utilisation du SDK Vertex AI pour Python, consultez les pages suivantes : Installer le SDK Vertex AI pour Python et Documentation de référence de l'API SDK Vertex AI pour Python.

Node.js

Pour envoyer une requête, créez un fichier Node.js (.js) et copiez-y le code suivant. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Ensuite, exécutez le fichier JavaScript à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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));
}

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Node.js, consultez la documentation de référence du SDK Vertex AI pour Node.js.

Java

Pour envoyer une requête, créez un fichier Java (.java) et copiez-y le code suivant. Choisissez your-google-cloud-project-id pour l'ID du projet Google Cloud. Ensuite, exécutez le fichier Java à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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

Pour en savoir plus sur l'installation et l'utilisation du kit de développement Java Vertex AI (JDK), consultez la documentation de référence sur le JDK Vertex AI.

Go

Pour envoyer une requête, créez un fichier Go (.go) et copiez-y le code suivant. Remplacez projectID par l'ID de votre projet Google Cloud. Ensuite, exécutez le fichier Go à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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
}

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Go, consultez la documentation de référence du SDK Vertex AI pour Go.

C#

Pour envoyer une requête, créez un fichier C# (.cs) et copiez-y le code suivant. Choisissez your-project-id pour l'ID du projet Google Cloud. Exécutez ensuite le fichier C# à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.


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

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour C#, consultez la documentation de référence sur le SDK Vertex AI pour C#.

REST

Vous pouvez envoyer cette requête d'invite depuis Cloud Shell, la ligne de commande ou dans un IDE, ou intégrer l'appel REST dans votre application, le cas échéant.

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?"
      }
    ]
  }
}'

Le modèle renvoie une réponse. Notez que la réponse est générée par section, et chaque section est évaluée séparément pour garantir la sécurité.

Pour en savoir plus, consultez la documentation de référence sur REST et RPC pour l'IA générative.

Envoyer une requête incluant une image

Après avoir configuré votre environnement local, envoyez une requête incluant du texte et une image à l'API Vertex AI Gemini. L'exemple suivant renvoie une description de l'image fournie (image pour l'exemple Java).

Python

Pour envoyer une requête, créez un fichier Python (.py) et copiez-y le code suivant. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Exécutez ensuite le fichier Python à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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)

Facultatif : Si vous utilisez Cloud Shell et que vous êtes invité à l'autoriser, cliquez sur Autoriser.

Pour en savoir plus sur l'installation, la mise à jour et l'utilisation du SDK Vertex AI pour Python, consultez les pages suivantes : Installer le SDK Vertex AI pour Python et Documentation de référence de l'API SDK Vertex AI pour Python.

Node.js

Pour envoyer une requête, créez un fichier Node.js (.js) et copiez-y le code suivant. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Ensuite, exécutez le fichier JavaScript à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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);
}

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Node.js, consultez la documentation de référence du SDK Vertex AI pour Node.js.

Java

Pour envoyer une requête, créez un fichier Java (.java) et copiez-y le code suivant. Choisissez your-google-cloud-project-id pour l'ID du projet Google Cloud. Ensuite, exécutez le fichier Java à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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();
    }
  }
}

Pour en savoir plus sur l'installation et l'utilisation du kit de développement Java Vertex AI (JDK), consultez la documentation de référence sur le JDK Vertex AI.

Go

Pour envoyer une requête, créez un fichier Go (.go) et copiez-y le code suivant. Remplacez projectID par l'ID de votre projet Google Cloud. Ensuite, exécutez le fichier Go à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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
}

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Go, consultez la documentation de référence du SDK Vertex AI pour Go.

C#

Pour envoyer une requête, créez un fichier C# (.cs) et copiez-y le code suivant. Choisissez your-project-id pour l'ID du projet Google Cloud. Exécutez ensuite le fichier C# à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.


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();
    }
}

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour C#, consultez la documentation de référence sur le SDK Vertex AI pour C#.

REST

Vous pouvez envoyer cette requête d'invite depuis Cloud Shell, la ligne de commande ou dans un IDE, ou intégrer l'appel REST dans votre application, le cas échéant.

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."
      }
    ]
  }
}'

Le modèle renvoie une réponse. Notez que la réponse est générée par section, et chaque section est évaluée séparément pour garantir la sécurité.

Pour en savoir plus, consultez la documentation de référence sur REST et RPC pour l'IA générative.

Envoyer une requête incluant des données audio et vidéo

Après avoir configuré votre environnement local, envoyez une requête incluant du texte, de l'audio et de la vidéo à l'API Vertex AI Gemini. L'exemple suivant renvoie une description de la vidéo fournie, y compris tous les éléments importants de la piste audio.

Python

Pour envoyer une requête, créez un fichier Python (.py) et copiez-y le code suivant. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Exécutez ensuite le fichier Python à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.


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)

Facultatif : Si vous utilisez Cloud Shell et que vous êtes invité à l'autoriser, cliquez sur Autoriser.

Pour en savoir plus sur l'installation, la mise à jour et l'utilisation du SDK Vertex AI pour Python, consultez les pages suivantes : Installer le SDK Vertex AI pour Python et Documentation de référence de l'API SDK Vertex AI pour Python.

Node.js

Pour envoyer une requête, créez un fichier Node.js (.js) et copiez-y le code suivant. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Ensuite, exécutez le fichier JavaScript à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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));
}

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Node.js, consultez la documentation de référence du SDK Vertex AI pour Node.js.

Java

Pour envoyer une requête, créez un fichier Java (.java) et copiez-y le code suivant. Choisissez your-google-cloud-project-id pour l'ID du projet Google Cloud. Ensuite, exécutez le fichier Java à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.


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

Pour en savoir plus sur l'installation et l'utilisation du kit de développement Java Vertex AI (JDK), consultez la documentation de référence sur le JDK Vertex AI.

Go

Pour envoyer une requête, créez un fichier Go (.go) et copiez-y le code suivant. Remplacez projectID par l'ID de votre projet Google Cloud. Ensuite, exécutez le fichier Go à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.

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
}

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour Go, consultez la documentation de référence du SDK Vertex AI pour Go.

C#

Pour envoyer une requête, créez un fichier C# (.cs) et copiez-y le code suivant. Choisissez your-project-id pour l'ID du projet Google Cloud. Exécutez ensuite le fichier C# à partir de la ligne de commande ou dans un IDE, ou intégrez le code dans votre application, le cas échéant.


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

Pour en savoir plus sur l'installation et l'utilisation du SDK Vertex AI pour C#, consultez la documentation de référence sur le SDK Vertex AI pour C#.

REST

Vous pouvez envoyer cette requête d'invite depuis Cloud Shell, la ligne de commande ou dans un IDE, ou intégrer l'appel REST dans votre application, le cas échéant.

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."
      }
    ]
  }
}'

Le modèle renvoie une réponse. Notez que la réponse est générée par section, et chaque section est évaluée séparément pour garantir la sécurité.

Pour en savoir plus, consultez la documentation de référence sur REST et RPC pour l'IA générative.

Étapes suivantes