Invia richieste all'API Vertex AI per Gemini

Invia richieste all'API Gemini in Vertex AI utilizzando un SDK per i linguaggi di programmazione o l'API REST per iniziare a creare la tua applicazione di IA generativa su Google Cloud.

Per iniziare, crea un account Google Cloud

Per provare questa guida rapida, devi creare un account Google Cloud. Con questo account riceverai 300 $di credito gratuito, oltre all'utilizzo gratuito di oltre 20 prodotti, senza alcun addebito sul tuo credito di 300 $.

Inizia gratuitamente

Per maggiori informazioni sulla configurazione su Google Cloud dopo la creazione dell'account, consulta Configurazione su Google Cloud.

Configura l'ambiente

Per configurare il tuo ambiente locale per l'invio di una richiesta all'API Vertex AI Gemini, seleziona una delle seguenti schede:

Python

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Attiva l'API Vertex AI.

    Abilita l'API

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Attiva l'API Vertex AI.

    Abilita l'API

  6. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  7. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  8. Installa o aggiorna l'SDK Vertex AI per Python eseguendo questo comando:

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

    (Facoltativo) Se utilizzi Cloud Shell e ti viene chiesto di autorizzare Cloud Shell, fai clic su Autorizza.

    Per maggiori informazioni su installazione, aggiornamento e utilizzo dell'SDK Vertex AI per Python, consulta la documentazione sull'installazione dell'SDK Vertex AI per Python e la documentazione di riferimento dell'SDK Vertex AI per l'API Python.

Node.js

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Attiva l'API Vertex AI.

    Abilita l'API

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Attiva l'API Vertex AI.

    Abilita l'API

  6. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  7. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  8. In Cloud Shell, installa o aggiorna l'SDK Vertex AI per Node.js eseguendo questo comando:

    npm install @google-cloud/vertexai
    

    Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI Node.js, consulta la documentazione di riferimento dell'SDK Vertex AI per Node.js.

Java

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Attiva l'API Vertex AI.

    Abilita l'API

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Attiva l'API Vertex AI.

    Abilita l'API

  6. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  7. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  8. Per aggiungere google-cloud-vertexai come dipendenza, aggiungi il codice appropriato per il tuo ambiente:

    Maven con BOM

    Aggiungi il seguente codice HTML a 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 senza BOM

    Aggiungi il seguente codice HTML a 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'

    Per ulteriori informazioni sull'installazione e sull'utilizzo del Java Development Kit (JDK) di Vertex AI, consulta la documentazione di riferimento di Vertex AI JDK.

Go

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Attiva l'API Vertex AI.

    Abilita l'API

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Attiva l'API Vertex AI.

    Abilita l'API

  6. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  7. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  8. Esamina i pacchetti Go dell'API Vertex AI disponibili per determinare quale pacchetto soddisfa meglio le esigenze del tuo progetto:

    • Pacchetto cloud.google.com/go/vertexai (consigliato)

      vertexai è un pacchetto creato da persone fisiche che fornisce l'accesso a capacità e funzionalità comuni.

      Questo pacchetto è consigliato come punto di partenza per la maggior parte degli sviluppatori che creano con l'API Vertex AI. Per accedere a funzionalità e funzionalità non ancora coperte da questo pacchetto, utilizza invece l'elemento aiplatform generato automaticamente.

    • Pacchetto cloud.google.com/go/aiplatform

      aiplatform è un pacchetto generato automaticamente.

      Questo pacchetto è destinato ai progetti che richiedono l'accesso alle funzionalità e alle funzionalità dell'API Vertex AI non ancora fornite dal pacchetto vertexai creato da persone fisiche.

  9. Installa il pacchetto Go desiderato in base alle esigenze del progetto eseguendo uno dei seguenti comandi:

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

    Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per Go, consulta la documentazione di riferimento dell'SDK Vertex AI per Go.

C#

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Attiva l'API Vertex AI.

    Abilita l'API

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Attiva l'API Vertex AI.

    Abilita l'API

  6. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  7. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  8. Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per C#, consulta la documentazione di riferimento dell'SDK Vertex AI per C#.

REST

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Attiva l'API Vertex AI.

    Abilita l'API

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Attiva l'API Vertex AI.

    Abilita l'API

  6. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  7. Configura le variabili di ambiente inserendo quanto segue. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.
    MODEL_ID="gemini-1.0-pro-vision"
    PROJECT_ID="PROJECT_ID"
    
  8. Esegui il provisioning dell'endpoint:
    gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
    

    (Facoltativo) Se utilizzi Cloud Shell e ti viene chiesto di autorizzare Cloud Shell, fai clic su Autorizza.

Invia una richiesta di solo testo

Dopo aver configurato l'ambiente locale, invia una richiesta di solo testo all'API Vertex AI Gemini. Il seguente esempio restituisce un elenco di possibili nomi per un negozio di fiori specializzato.

Python

Per inviare una richiesta di prompt, crea un file Python (.py) e copia il codice seguente nel file. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Quindi, esegui il file Python dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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)

(Facoltativo) Se utilizzi Cloud Shell e ti viene chiesto di autorizzare Cloud Shell, fai clic su Autorizza.

Per maggiori informazioni su installazione, aggiornamento e utilizzo dell'SDK Vertex AI per Python, consulta la documentazione sull'installazione dell'SDK Vertex AI per Python e la documentazione di riferimento dell'SDK Vertex AI per l'API Python.

Node.js

Per inviare una richiesta di prompt, crea un file Node.js (.js) e copia il seguente codice nel file. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Poi, esegui il file JavaScript dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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.0-pro-002',
  });

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

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI Node.js, consulta la documentazione di riferimento dell'SDK Vertex AI per Node.js.

Java

Per inviare una richiesta di prompt, crea un file Java (.java) e copia il seguente codice nel file. Imposta your-google-cloud-project-id sull'ID progetto Google Cloud. Poi, esegui il file Java dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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)) {
      String output;
      GenerativeModel model = new GenerativeModel(modelName, vertexAI);

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

Per ulteriori informazioni sull'installazione e sull'utilizzo del Java Development Kit (JDK) di Vertex AI, consulta la documentazione di riferimento di Vertex AI JDK.

Go

Per inviare una richiesta di prompt, crea un file Go (.go) e copia il seguente codice nel file. Sostituisci projectID con l'ID del tuo progetto Google Cloud. Poi, esegui il file Go dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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
}

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per Go, consulta la documentazione di riferimento dell'SDK Vertex AI per Go.

C#

Per inviare una richiesta di prompt, crea un file C# (.cs) e copia il seguente codice nel file. Imposta your-project-id sul tuo ID progetto Google Cloud. Poi, esegui il file C# dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.


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-pro-preview-0409")
    {

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

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per C#, consulta la documentazione di riferimento dell'SDK Vertex AI per C#.

REST

Puoi inviare questa richiesta di prompt da Cloud Shell, dalla riga di comando o da un IDE oppure puoi incorporare la chiamata REST nell'applicazione dove opportuno.

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

Il modello restituisce una risposta. Tieni presente che la risposta viene generata in sezioni e ogni sezione viene valutata separatamente per la sicurezza.

Per maggiori informazioni, consulta la documentazione di riferimento per REST e RPC dell'IA generativa.

Invia una richiesta che include un'immagine

Dopo aver configurato l'ambiente locale, invia una richiesta che include testo e un'immagine all'API Vertex AI Gemini. Il seguente esempio restituisce una descrizione dell'immagine fornita (immagine per esempio Java).

Python

Per inviare una richiesta di prompt, crea un file Python (.py) e copia il codice seguente nel file. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Quindi, esegui il file Python dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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)

(Facoltativo) Se utilizzi Cloud Shell e ti viene chiesto di autorizzare Cloud Shell, fai clic su Autorizza.

Per maggiori informazioni su installazione, aggiornamento e utilizzo dell'SDK Vertex AI per Python, consulta la documentazione sull'installazione dell'SDK Vertex AI per Python e la documentazione di riferimento dell'SDK Vertex AI per l'API Python.

Node.js

Per inviare una richiesta di prompt, crea un file Node.js (.js) e copia il seguente codice nel file. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Poi, esegui il file JavaScript dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI Node.js, consulta la documentazione di riferimento dell'SDK Vertex AI per Node.js.

Java

Per inviare una richiesta di prompt, crea un file Java (.java) e copia il seguente codice nel file. Imposta your-google-cloud-project-id sull'ID progetto Google Cloud. Poi, esegui il file Java dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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

Per ulteriori informazioni sull'installazione e sull'utilizzo del Java Development Kit (JDK) di Vertex AI, consulta la documentazione di riferimento di Vertex AI JDK.

Go

Per inviare una richiesta di prompt, crea un file Go (.go) e copia il seguente codice nel file. Sostituisci projectID con l'ID del tuo progetto Google Cloud. Poi, esegui il file Go dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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
}

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per Go, consulta la documentazione di riferimento dell'SDK Vertex AI per Go.

C#

Per inviare una richiesta di prompt, crea un file C# (.cs) e copia il seguente codice nel file. Imposta your-project-id sul tuo ID progetto Google Cloud. Poi, esegui il file C# dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.


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

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per C#, consulta la documentazione di riferimento dell'SDK Vertex AI per C#.

REST

Puoi inviare questa richiesta di prompt da Cloud Shell, dalla riga di comando o da un IDE oppure puoi incorporare la chiamata REST nell'applicazione dove opportuno.

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

Il modello restituisce una risposta. Tieni presente che la risposta viene generata in sezioni e ogni sezione viene valutata separatamente per la sicurezza.

Per maggiori informazioni, consulta la documentazione di riferimento per REST e RPC dell'IA generativa.

Invia una richiesta che includa audio e video

Dopo aver configurato l'ambiente locale, invia una richiesta che includa testo, audio e video all'API Vertex AI Gemini. Il seguente esempio restituisce una descrizione del video fornito, inclusi tutti gli elementi importanti della traccia audio.

Python

Per inviare una richiesta di prompt, crea un file Python (.py) e copia il codice seguente nel file. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Quindi, esegui il file Python dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.


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-preview-0514")

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)

(Facoltativo) Se utilizzi Cloud Shell e ti viene chiesto di autorizzare Cloud Shell, fai clic su Autorizza.

Per maggiori informazioni su installazione, aggiornamento e utilizzo dell'SDK Vertex AI per Python, consulta la documentazione sull'installazione dell'SDK Vertex AI per Python e la documentazione di riferimento dell'SDK Vertex AI per l'API Python.

Node.js

Per inviare una richiesta di prompt, crea un file Node.js (.js) e copia il seguente codice nel file. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Poi, esegui il file JavaScript dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI Node.js, consulta la documentazione di riferimento dell'SDK Vertex AI per Node.js.

Java

Per inviare una richiesta di prompt, crea un file Java (.java) e copia il seguente codice nel file. Imposta your-google-cloud-project-id sull'ID progetto Google Cloud. Poi, esegui il file Java dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.


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-pro-preview-0409";

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

Per ulteriori informazioni sull'installazione e sull'utilizzo del Java Development Kit (JDK) di Vertex AI, consulta la documentazione di riferimento di Vertex AI JDK.

Go

Per inviare una richiesta di prompt, crea un file Go (.go) e copia il seguente codice nel file. Sostituisci projectID con l'ID del tuo progetto Google Cloud. Poi, esegui il file Go dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.

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
}

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per Go, consulta la documentazione di riferimento dell'SDK Vertex AI per Go.

C#

Per inviare una richiesta di prompt, crea un file C# (.cs) e copia il seguente codice nel file. Imposta your-project-id sul tuo ID progetto Google Cloud. Poi, esegui il file C# dalla riga di comando o in un IDE oppure incorpora il codice nell'applicazione dove opportuno.


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-pro-preview-0409")
    {

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

Per ulteriori informazioni sull'installazione e sull'utilizzo dell'SDK Vertex AI per C#, consulta la documentazione di riferimento dell'SDK Vertex AI per C#.

REST

Puoi inviare questa richiesta di prompt da Cloud Shell, dalla riga di comando o da un IDE oppure puoi incorporare la chiamata REST nell'applicazione dove opportuno.

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

Il modello restituisce una risposta. Tieni presente che la risposta viene generata in sezioni e ogni sezione viene valutata separatamente per la sicurezza.

Per maggiori informazioni, consulta la documentazione di riferimento per REST e RPC dell'IA generativa.

Passaggi successivi