Enviar solicitações para a API Vertex AI para Gemini

Envie solicitações para a API Gemini na Vertex AI usando um SDK de linguagem de programação ou a API REST para começar a criar seu aplicativo de IA generativa no Google Cloud.

Crie uma conta do Google Cloud para começar

Para testar este guia de início rápido, você precisa criar uma conta do Google Cloud. Com esta conta, você receberá US$ 300 em crédito, além de uso gratuito de mais de 20 produtos, sem cobranças no seu crédito de US$ 300.

Comece a usar gratuitamente

Para mais informações sobre como configurar o Google Cloud depois que sua conta for criada, consulte Configurar no Google Cloud.

Configure seu ambiente

Para configurar seu ambiente local para enviar uma solicitação à API Vertex AI Gemini, selecione uma das seguintes guias:

Python

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Ative a API Vertex AI.

    Ative a API

  4. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  5. Ative a API Vertex AI.

    Ative a API

  6. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  7. Crie as credenciais de autenticação para sua Conta do Google:

    gcloud auth application-default login
  8. Instale ou atualize o SDK da Vertex AI para Python executando o seguinte comando:

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

    Opcional: se você estiver usando o Cloud Shell e for solicitado a autorizá-lo, clique em Autorizar.

    Para mais informações sobre como instalar, atualizar e usar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python e a documentação de referência da API do SDK da Vertex AI para Python.

Node.js

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Ative a API Vertex AI.

    Ative a API

  4. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  5. Ative a API Vertex AI.

    Ative a API

  6. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  7. Crie as credenciais de autenticação para sua Conta do Google:

    gcloud auth application-default login
  8. No Cloud Shell, instale ou atualize o SDK da Vertex Generative AI para Node.js executando o seguinte comando:

    npm install @google-cloud/vertexai
    

    Para mais informações sobre como instalar e usar o SDK da Vertex AI para Node.js, consulte a documentação de referência do SDK da Vertex AI para Node.js.

Java

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Ative a API Vertex AI.

    Ative a API

  4. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  5. Ative a API Vertex AI.

    Ative a API

  6. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  7. Crie as credenciais de autenticação para sua Conta do Google:

    gcloud auth application-default login
  8. Para adicionar google-cloud-vertexai como uma dependência, adicione o código apropriado para seu ambiente:

    Maven com BoM

    Adicione o seguinte HTML a seu 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 sem BOM

    Adicione o seguinte HTML a seu 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'

    Para mais informações sobre como instalar e usar o Kit de desenvolvimento em Java da Vertex AI (JDK), consulte a documentação de referência do Vertex AI JDK.

Go

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Ative a API Vertex AI.

    Ative a API

  4. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  5. Ative a API Vertex AI.

    Ative a API

  6. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  7. Crie as credenciais de autenticação para sua Conta do Google:

    gcloud auth application-default login
  8. Revise os pacotes disponíveis da API Vertex Generative AI em Go para determinar qual pacote atende melhor às necessidades do seu projeto:

    • Pacote cloud.google.com/go/vertexai (recomendado)

      vertexai é um pacote criado por humanos que fornece acesso a recursos e capabilities comuns.

      Esse pacote é recomendado como ponto de partida para a maioria dos desenvolvedores que criam usando a API Vertex Generative AI. Para acessar recursos e capabilities ainda não cobertos por esse pacote, use o aiplatform gerado automaticamente.

    • Pacote cloud.google.com/go/aiplatform

      aiplatform é um pacote gerado automaticamente.

      Esse pacote é destinado a projetos que exigem acesso a recursos e capabilities da API Vertex Generative AI ainda não fornecidos pelo pacote vertexai criado por humanos.

  9. Instale o pacote Go desejado com base nas necessidades do seu projeto executando um dos seguintes comandos:

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

    Para mais informações sobre como instalar e usar o SDK da Vertex AI para Go, consulte a documentação de referência do SDK da Vertex AI para Go.

C#

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Ative a API Vertex AI.

    Ative a API

  4. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  5. Ative a API Vertex AI.

    Ative a API

  6. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  7. Crie as credenciais de autenticação para sua Conta do Google:

    gcloud auth application-default login
  8. Para mais informações sobre como instalar e usar o SDK da Vertex AI para C#, consulte a documentação de referência do SDK da Vertex AI para C#.

REST

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Ative a API Vertex AI.

    Ative a API

  4. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  5. Ative a API Vertex AI.

    Ative a API

  6. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  7. Insira o comando abaixo para configurar as variáveis de ambiente. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud.
    MODEL_ID="gemini-1.0-pro-vision"
    PROJECT_ID="PROJECT_ID"
    
  8. Provisione o endpoint:
    gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
    

    Opcional: se você estiver usando o Cloud Shell e for solicitado a autorizá-lo, clique em Autorizar.

Enviar uma solicitação somente de texto

Depois de configurar o ambiente local, envie uma solicitação somente de texto para a API Vertex AI Gemini. O exemplo a seguir retorna uma lista de possíveis nomes para uma floricultura especializada.

Python

Para enviar uma solicitação de prompt, crie um arquivo Python (.py) e copie o código a seguir no arquivo. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud. Em seguida, execute o arquivo Python na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.

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)

Opcional: se você estiver usando o Cloud Shell e for solicitado a autorizá-lo, clique em Autorizar.

Para mais informações sobre como instalar, atualizar e usar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python e a documentação de referência da API do SDK da Vertex AI para Python.

Node.js

Para enviar uma solicitação de prompt, crie um arquivo Node.js (.js) e copie o código a seguir no arquivo. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud. Depois, execute o arquivo JavaScript na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao seu aplicativo quando apropriado.

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

Para mais informações sobre como instalar e usar o SDK da Vertex AI para Node.js, consulte a documentação de referência do SDK da Vertex AI para Node.js.

Java

Para enviar uma solicitação de prompt, crie um arquivo Java (.java) e copie o código a seguir no arquivo. Defina your-google-cloud-project-id como o ID do projeto do Google Cloud. Depois, execute o arquivo Java na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.

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

Para mais informações sobre como instalar e usar o Kit de desenvolvimento em Java da Vertex AI (JDK), consulte a documentação de referência do Vertex AI JDK.

Go

Para enviar uma solicitação de prompt, crie um arquivo Go (.go) e copie o código a seguir no arquivo. Substitua projectID pelo ID do projeto do Google Cloud. Depois, execute o arquivo Go na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.

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
}

Para mais informações sobre como instalar e usar o SDK da Vertex AI para Go, consulte a documentação de referência do SDK da Vertex AI para Go.

C#

Para enviar uma solicitação de prompt, crie um arquivo C# (.cs) e copie o código a seguir no arquivo. Defina your-project-id como o ID do projeto do Google Cloud. Depois, execute o arquivo C# na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.


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

Para mais informações sobre como instalar e usar o SDK da Vertex AI para C#, consulte a documentação de referência do SDK da Vertex AI para C#.

REST

É possível enviar essa solicitação de prompt do Cloud Shell, da linha de comando ou de um ambiente de desenvolvimento integrado ou incorporar a chamada REST ao aplicativo quando apropriado.

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

O modelo retorna uma resposta. A resposta é gerada em seções, e cada uma delas é avaliada separadamente quanto à segurança.

Para mais informações, consulte a documentação de referência de REST e RPC da IA generativa.

Enviar uma solicitação que inclua uma imagem

Depois de configurar o ambiente local, envie uma solicitação que inclua texto e uma imagem para a API Vertex AI Gemini. O exemplo a seguir retorna uma descrição da imagem fornecida (imagem para amostra Java).

Python

Para enviar uma solicitação de prompt, crie um arquivo Python (.py) e copie o código a seguir no arquivo. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud. Em seguida, execute o arquivo Python na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.

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)

Opcional: se você estiver usando o Cloud Shell e for solicitado a autorizá-lo, clique em Autorizar.

Para mais informações sobre como instalar, atualizar e usar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python e a documentação de referência da API do SDK da Vertex AI para Python.

Node.js

Para enviar uma solicitação de prompt, crie um arquivo Node.js (.js) e copie o código a seguir no arquivo. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud. Depois, execute o arquivo JavaScript na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao seu aplicativo quando apropriado.

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

Para mais informações sobre como instalar e usar o SDK da Vertex AI para Node.js, consulte a documentação de referência do SDK da Vertex AI para Node.js.

Java

Para enviar uma solicitação de prompt, crie um arquivo Java (.java) e copie o código a seguir no arquivo. Defina your-google-cloud-project-id como o ID do projeto do Google Cloud. Depois, execute o arquivo Java na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.

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

Para mais informações sobre como instalar e usar o Kit de desenvolvimento em Java da Vertex AI (JDK), consulte a documentação de referência do Vertex AI JDK.

Go

Para enviar uma solicitação de prompt, crie um arquivo Go (.go) e copie o código a seguir no arquivo. Substitua projectID pelo ID do projeto do Google Cloud. Depois, execute o arquivo Go na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.

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
}

Para mais informações sobre como instalar e usar o SDK da Vertex AI para Go, consulte a documentação de referência do SDK da Vertex AI para Go.

C#

Para enviar uma solicitação de prompt, crie um arquivo C# (.cs) e copie o código a seguir no arquivo. Defina your-project-id como o ID do projeto do Google Cloud. Depois, execute o arquivo C# na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.


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

Para mais informações sobre como instalar e usar o SDK da Vertex AI para C#, consulte a documentação de referência do SDK da Vertex AI para C#.

REST

É possível enviar essa solicitação de prompt do Cloud Shell, da linha de comando ou de um ambiente de desenvolvimento integrado ou incorporar a chamada REST ao aplicativo quando apropriado.

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

O modelo retorna uma resposta. A resposta é gerada em seções, e cada uma delas é avaliada separadamente quanto à segurança.

Para mais informações, consulte a documentação de referência de REST e RPC da IA generativa.

Envie uma solicitação que inclua áudio e vídeo

Depois de configurar seu ambiente local, envie uma solicitação que inclua texto, áudio e vídeo para a API Vertex AI Gemini. O exemplo a seguir retorna uma descrição do vídeo fornecido, incluindo qualquer coisa importante da faixa de áudio.

Python

Para enviar uma solicitação de prompt, crie um arquivo Python (.py) e copie o código a seguir no arquivo. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud. Em seguida, execute o arquivo Python na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.


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)

Opcional: se você estiver usando o Cloud Shell e for solicitado a autorizá-lo, clique em Autorizar.

Para mais informações sobre como instalar, atualizar e usar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python e a documentação de referência da API do SDK da Vertex AI para Python.

Node.js

Para enviar uma solicitação de prompt, crie um arquivo Node.js (.js) e copie o código a seguir no arquivo. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud. Depois, execute o arquivo JavaScript na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao seu aplicativo quando apropriado.

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

Para mais informações sobre como instalar e usar o SDK da Vertex AI para Node.js, consulte a documentação de referência do SDK da Vertex AI para Node.js.

Java

Para enviar uma solicitação de prompt, crie um arquivo Java (.java) e copie o código a seguir no arquivo. Defina your-google-cloud-project-id como o ID do projeto do Google Cloud. Depois, execute o arquivo Java na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.


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

Para mais informações sobre como instalar e usar o Kit de desenvolvimento em Java da Vertex AI (JDK), consulte a documentação de referência do Vertex AI JDK.

Go

Para enviar uma solicitação de prompt, crie um arquivo Go (.go) e copie o código a seguir no arquivo. Substitua projectID pelo ID do projeto do Google Cloud. Depois, execute o arquivo Go na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.

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
}

Para mais informações sobre como instalar e usar o SDK da Vertex AI para Go, consulte a documentação de referência do SDK da Vertex AI para Go.

C#

Para enviar uma solicitação de prompt, crie um arquivo C# (.cs) e copie o código a seguir no arquivo. Defina your-project-id como o ID do projeto do Google Cloud. Depois, execute o arquivo C# na linha de comando ou em um ambiente de desenvolvimento integrado ou incorpore o código ao aplicativo quando apropriado.


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

Para mais informações sobre como instalar e usar o SDK da Vertex AI para C#, consulte a documentação de referência do SDK da Vertex AI para C#.

REST

É possível enviar essa solicitação de prompt do Cloud Shell, da linha de comando ou de um ambiente de desenvolvimento integrado ou incorporar a chamada REST ao aplicativo quando apropriado.

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

O modelo retorna uma resposta. A resposta é gerada em seções, e cada uma delas é avaliada separadamente quanto à segurança.

Para mais informações, consulte a documentação de referência de REST e RPC da IA generativa.

A seguir