Envía solicitudes a la API de Vertex AI para Gemini

Envía solicitudes a la API de Gemini en Vertex AI con un SDK de lenguaje de programación o la API de REST para comenzar a compilar tu aplicación de IA generativa en Google Cloud.

Crea una cuenta de Google Cloud para comenzar

Para probar esta guía de inicio rápido, deberás crear una cuenta de Google Cloud. Con esta cuenta, obtendrás $300 en crédito gratuito, además del uso sin costo de más de 20 productos, que no se descuentan de tu crédito de $300.

Comenzar gratis

Para obtener más información sobre la configuración en Google Cloud después de crear tu cuenta, consulta Prepárate en Google Cloud.

Configura tu entorno.

Si deseas configurar tu entorno local para enviar una solicitud a la API de Gemini de Vertex AI, selecciona una de las siguientes pestañas:

Python

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Habilita la API de Vertex AI.

    Habilita la API

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Habilita la API de Vertex AI.

    Habilita la API

  6. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  7. Crea credenciales de autenticación locales para tu Cuenta de Google:

    gcloud auth application-default login
  8. Instala o actualiza el SDK de Vertex AI para Python mediante la ejecución del siguiente comando:

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

    Opcional: Si usas Cloud Shell y se te solicita que autorices a Cloud Shell, haz clic en Autorizar.

    Si deseas obtener más información acerca de cómo instalar, actualizar y usar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python y la Documentación de referencia del SDK de Vertex AI para la API de Python..

Node.js

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Habilita la API de Vertex AI.

    Habilita la API

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Habilita la API de Vertex AI.

    Habilita la API

  6. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  7. Crea credenciales de autenticación locales para tu Cuenta de Google:

    gcloud auth application-default login
  8. En Cloud Shell, instala o actualiza el SDK de Vertex AI para Node.js mediante la ejecución del siguiente comando:

    npm install @google-cloud/vertexai
    

    Si quieres obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Node.js, consulta la documentación de referencia del SDK de Vertex AI para Node.js.

Java

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Habilita la API de Vertex AI.

    Habilita la API

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Habilita la API de Vertex AI.

    Habilita la API

  6. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  7. Crea credenciales de autenticación locales para tu Cuenta de Google:

    gcloud auth application-default login
  8. Para agregar google-cloud-vertexai como dependencia, agrega el código apropiado para tu entorno:

    Maven con BOM

    Agrega el siguiente HTML a tu 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 sin BOM

    Agrega el siguiente HTML a tu pom.xml:

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

    Gradle sin BOM

    Agrega lo siguiente a tu build.gradle

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

    Para obtener más información sobre cómo instalar y usar el kit de desarrollo de Java (JDK) de Vertex AI, consulta la documentación de referencia del JDK de Vertex AI.

Go

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Habilita la API de Vertex AI.

    Habilita la API

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Habilita la API de Vertex AI.

    Habilita la API

  6. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  7. Crea credenciales de autenticación locales para tu Cuenta de Google:

    gcloud auth application-default login
  8. Revisa los paquetes disponibles de Go de la API de Vertex AI para determinar qué paquete se adapta mejor a las necesidades de tu proyecto:

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

      vertexai es un paquete creado por personas que proporciona acceso a capacidades y funciones comunes.

      Se recomienda este paquete como punto de partida para la mayoría de los desarrolladores que compilan con la API de Vertex AI. Para acceder a las capacidades y funciones que aún no se incluyen en este paquete, usa el aiplatform generado de forma automática.

    • Paquete cloud.google.com/go/aiplatform

      aiplatform es un paquete generado de forma automática.

      Este paquete está diseñado para proyectos que requieren acceso a capacidades y funciones de la API de Vertex AI que aún no proporciona el paquete vertexai creado por personas.

  9. Instala el paquete de Go deseado según las necesidades de tu proyecto a través de la ejecución de uno de los siguientes 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

    Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Go, consulta la documentación de referencia del SDK de Vertex AI para Go.

C#

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Habilita la API de Vertex AI.

    Habilita la API

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Habilita la API de Vertex AI.

    Habilita la API

  6. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  7. Crea credenciales de autenticación locales para tu Cuenta de Google:

    gcloud auth application-default login
  8. Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para C#, consulta la documentación de referencia del SDK de Vertex AI para C#.

REST

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Habilita la API de Vertex AI.

    Habilita la API

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Habilita la API de Vertex AI.

    Habilita la API

  6. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  7. Ingresa lo siguiente para configurar las variables de entorno. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.
    MODEL_ID="gemini-1.0-pro-vision"
    PROJECT_ID="PROJECT_ID"
    
  8. Aprovisiona el extremo:
    gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
    

    Opcional: Si usas Cloud Shell y se te solicita que autorices a Cloud Shell, haz clic en Autorizar.

Envía una solicitud de solo texto

Después de configurar tu entorno local, envía una solicitud de solo texto a la API de Gemini de Vertex AI. En la siguiente muestra, se muestra una lista de nombres posibles para una florería especializada.

Python

Para enviar una solicitud de mensaje, crea un archivo de Python (.py) y copia el siguiente código en el archivo. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Luego, ejecuta el archivo Python desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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: Si usas Cloud Shell y se te solicita que autorices a Cloud Shell, haz clic en Autorizar.

Si deseas obtener más información acerca de cómo instalar, actualizar y usar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python y la Documentación de referencia del SDK de Vertex AI para la API de Python..

Node.js

Para enviar una solicitud de instrucción, crea un archivo Node.js (.js) y copia el siguiente código en el archivo. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Luego, ejecuta el archivo JavaScript desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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

Si quieres obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Node.js, consulta la documentación de referencia del SDK de Vertex AI para Node.js.

Java

Para enviar una solicitud de mensaje, crea un archivo Java (.java) y copia el siguiente código en el archivo. Establece your-google-cloud-project-id como tu ID del proyecto de Google Cloud. Luego, ejecuta el archivo Java desde la línea de comandos o en un IDE, o incorpora el código a tu aplicación cuando corresponda.

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

Para obtener más información sobre cómo instalar y usar el kit de desarrollo de Java (JDK) de Vertex AI, consulta la documentación de referencia del JDK de Vertex AI.

Go

Para enviar una solicitud de mensaje, crea un archivo de Go (.go) y copia el siguiente código en el archivo. Reemplaza projectID por tu ID del proyecto de Google Cloud. Después, ejecuta el archivo de Go desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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
}

Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Go, consulta la documentación de referencia del SDK de Vertex AI para Go.

C#

Para enviar una solicitud de mensaje, crea un archivo C# (.cs) y copia el siguiente código en el archivo. Establece your-project-id como tu ID del proyecto de Google Cloud. Luego, ejecuta el archivo C# desde la línea de comandos o en un IDE, o incorpora el código a tu aplicación cuando corresponda.


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

Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para C#, consulta la documentación de referencia del SDK de Vertex AI para C#.

REST

Puedes enviar esta solicitud de solicitud desde Cloud Shell, la línea de comandos o en un IDE, o puedes incorporar la llamada REST en tu aplicación cuando corresponda.

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

El modelo muestra una respuesta. Ten en cuenta que la respuesta se genera en secciones y cada sección se evalúa por separado para garantizar la seguridad.

Para obtener más información, consulta la documentación de referencia de RPC y de REST en la IA generativa.

Envía una solicitud que incluya una imagen

Después de configurar tu entorno local, envía una solicitud que incluya texto y una imagen a la API de Gemini de Vertex AI. En el siguiente ejemplo, se muestra una descripción de la imagen proporcionada (imagen para la muestra de Java).

Python

Para enviar una solicitud de mensaje, crea un archivo de Python (.py) y copia el siguiente código en el archivo. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Luego, ejecuta el archivo Python desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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: Si usas Cloud Shell y se te solicita que autorices a Cloud Shell, haz clic en Autorizar.

Si deseas obtener más información acerca de cómo instalar, actualizar y usar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python y la Documentación de referencia del SDK de Vertex AI para la API de Python..

Node.js

Para enviar una solicitud de instrucción, crea un archivo Node.js (.js) y copia el siguiente código en el archivo. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Luego, ejecuta el archivo JavaScript desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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

Si quieres obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Node.js, consulta la documentación de referencia del SDK de Vertex AI para Node.js.

Java

Para enviar una solicitud de mensaje, crea un archivo Java (.java) y copia el siguiente código en el archivo. Establece your-google-cloud-project-id como tu ID del proyecto de Google Cloud. Luego, ejecuta el archivo Java desde la línea de comandos o en un IDE, o incorpora el código a tu aplicación cuando corresponda.

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 obtener más información sobre cómo instalar y usar el kit de desarrollo de Java (JDK) de Vertex AI, consulta la documentación de referencia del JDK de Vertex AI.

Go

Para enviar una solicitud de mensaje, crea un archivo de Go (.go) y copia el siguiente código en el archivo. Reemplaza projectID por tu ID del proyecto de Google Cloud. Después, ejecuta el archivo de Go desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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
}

Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Go, consulta la documentación de referencia del SDK de Vertex AI para Go.

C#

Para enviar una solicitud de mensaje, crea un archivo C# (.cs) y copia el siguiente código en el archivo. Establece your-project-id como tu ID del proyecto de Google Cloud. Luego, ejecuta el archivo C# desde la línea de comandos o en un IDE, o incorpora el código a tu aplicación cuando corresponda.


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

Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para C#, consulta la documentación de referencia del SDK de Vertex AI para C#.

REST

Puedes enviar esta solicitud de solicitud desde Cloud Shell, la línea de comandos o en un IDE, o puedes incorporar la llamada REST en tu aplicación cuando corresponda.

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

El modelo muestra una respuesta. Ten en cuenta que la respuesta se genera en secciones y cada sección se evalúa por separado para garantizar la seguridad.

Para obtener más información, consulta la documentación de referencia de RPC y de REST en la IA generativa.

Envía una solicitud que incluya audio y video

Después de configurar tu entorno local, envía una solicitud que incluya texto, audio y video a la API de Vertex AI Gemini. En el siguiente ejemplo, se muestra una descripción del video proporcionado, que incluye cualquier elemento importante de la pista de audio.

Python

Para enviar una solicitud de mensaje, crea un archivo de Python (.py) y copia el siguiente código en el archivo. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Luego, ejecuta el archivo Python desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.


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)

Opcional: Si usas Cloud Shell y se te solicita que autorices a Cloud Shell, haz clic en Autorizar.

Si deseas obtener más información acerca de cómo instalar, actualizar y usar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python y la Documentación de referencia del SDK de Vertex AI para la API de Python..

Node.js

Para enviar una solicitud de instrucción, crea un archivo Node.js (.js) y copia el siguiente código en el archivo. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Luego, ejecuta el archivo JavaScript desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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

Si quieres obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Node.js, consulta la documentación de referencia del SDK de Vertex AI para Node.js.

Java

Para enviar una solicitud de mensaje, crea un archivo Java (.java) y copia el siguiente código en el archivo. Establece your-google-cloud-project-id como tu ID del proyecto de Google Cloud. Luego, ejecuta el archivo Java desde la línea de comandos o en un IDE, o incorpora el código a tu aplicación cuando corresponda.


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

Para obtener más información sobre cómo instalar y usar el kit de desarrollo de Java (JDK) de Vertex AI, consulta la documentación de referencia del JDK de Vertex AI.

Go

Para enviar una solicitud de mensaje, crea un archivo de Go (.go) y copia el siguiente código en el archivo. Reemplaza projectID por tu ID del proyecto de Google Cloud. Después, ejecuta el archivo de Go desde la línea de comandos o en un IDE, o incorpora el código en tu aplicación cuando corresponda.

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
}

Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para Go, consulta la documentación de referencia del SDK de Vertex AI para Go.

C#

Para enviar una solicitud de mensaje, crea un archivo C# (.cs) y copia el siguiente código en el archivo. Establece your-project-id como tu ID del proyecto de Google Cloud. Luego, ejecuta el archivo C# desde la línea de comandos o en un IDE, o incorpora el código a tu aplicación cuando corresponda.


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

Si deseas obtener más información sobre cómo instalar y usar el SDK de Vertex AI para C#, consulta la documentación de referencia del SDK de Vertex AI para C#.

REST

Puedes enviar esta solicitud de solicitud desde Cloud Shell, la línea de comandos o en un IDE, o puedes incorporar la llamada REST en tu aplicación cuando corresponda.

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

El modelo muestra una respuesta. Ten en cuenta que la respuesta se genera en secciones y cada sección se evalúa por separado para garantizar la seguridad.

Para obtener más información, consulta la documentación de referencia de RPC y de REST en la IA generativa.

¿Qué sigue?