Comprensión de imágenes

Puedes añadir imágenes a las peticiones de Gemini para que realice tareas que impliquen entender el contenido de las imágenes incluidas. En esta página se explica cómo añadir imágenes a tus peticiones a Gemini en Vertex AI mediante laGoogle Cloud consola y la API de Vertex AI.

Modelos admitidos

En la siguiente tabla se enumeran los modelos que admiten la interpretación de imágenes:

Modelo Detalles del contenido multimedia Tipos MIME
Versión preliminar de Gemini 2.5 Flash Image
  • Número máximo de imágenes por petición: 3
  • Tamaño máximo de la imagen: 7 MB
  • Número máximo de imágenes de salida por petición: 10
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.5 Flash-Lite
  • Número máximo de imágenes por petición: 3000
  • Tamaño máximo de la imagen: 7 MB
  • Número máximo de imágenes de salida por petición: 10
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash con generación de imágenes
  • Número máximo de imágenes por petición: 3000
  • Tamaño máximo de la imagen: 7 MB
  • Número máximo de imágenes de salida por petición: 10
  • Número máximo de tokens por minuto (TPM) por proyecto:
    • Resolución de contenido multimedia alta, media o predeterminada:
      • EE. UU./Asia: 40 M
      • UE: 10 M
    • Resolución multimedia baja:
      • EE. UU./Asia: 10 M
      • UE: 3 M
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.5 Pro
  • Número máximo de imágenes por petición: 3000
  • Tamaño máximo de la imagen: 7 MB
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.5 Flash
  • Número máximo de imágenes por petición: 3000
  • Tamaño máximo de la imagen: 7 MB
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash
  • Número máximo de imágenes por petición: 3000
  • Tamaño máximo de la imagen: 7 MB
  • Número máximo de tokens por minuto (TPM) por proyecto:
    • Resolución de contenido multimedia alta, media o predeterminada:
      • EE. UU./Asia: 40 M
      • UE: 10 M
    • Resolución multimedia baja:
      • EE. UU./Asia: 10 M
      • UE: 2,6 M
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash-Lite
  • Número máximo de imágenes por petición: 3000
  • Tamaño máximo de la imagen: 7 MB
  • Número máximo de tokens por minuto (TPM):
    • Resolución de contenido multimedia alta, media o predeterminada:
      • EE. UU./Asia: 6,7 M
      • UE: 2,6 M
    • Resolución multimedia baja:
      • EE. UU./Asia: 2,6 M
      • UE: 2,6 M
  • image/png
  • image/jpeg
  • image/webp

La métrica de cuota es generate_content_video_input_per_base_model_id_and_resolution.

Para ver una lista de los idiomas disponibles en los modelos de Gemini, consulta la información sobre los modelos de Google. Para obtener más información sobre cómo diseñar peticiones multimodales, consulta Diseña peticiones multimodales. Si quieres usar Gemini directamente desde tus aplicaciones móviles y web, consulta los SDKs de cliente de lógica de IA de Firebase para aplicaciones Swift, Android, web, Flutter y Unity.

Añadir imágenes a una solicitud

Puedes añadir una o varias imágenes en tu petición a Gemini.

Imagen única

El código de ejemplo de cada una de las pestañas siguientes muestra una forma diferente de identificar el contenido de una imagen. Este ejemplo funciona con todos los modelos multimodales de Gemini.

Consola

Para enviar una petición multimodal mediante la Google Cloud consola, sigue estos pasos:

  1. En la sección Vertex AI de la Google Cloud consola, ve a la página Vertex AI Studio.

    Ir a Vertex AI Studio

  2. Haz clic en Abrir a mano alzada.

  3. Opcional: Configura el modelo y los parámetros:

    • Modelo: selecciona un modelo.
    • Región: selecciona la región que quieras usar.
    • Temperatura: usa el control deslizante o el cuadro de texto para introducir un valor de temperatura.

      La temperatura se usa para el muestreo durante la generación de respuestas, que se produce cuando se aplican topP y topK. La temperatura controla el grado de aleatoriedad en la selección de tokens. Las temperaturas más bajas son adecuadas para las peticiones que requieren una respuesta menos abierta o creativa, mientras que las temperaturas más altas pueden dar lugar a resultados más diversos o creativos. Una temperatura de 0 significa que siempre se seleccionan los tokens con la probabilidad más alta. En este caso, las respuestas a una petición determinada son mayormente deterministas, pero sigue siendo posible que haya una pequeña variación.

      Si el modelo devuelve una respuesta demasiado genérica o demasiado corta, o bien una respuesta alternativa, prueba a aumentar la temperatura.

    • Límite de tokens de salida: usa el control deslizante o el cuadro de texto para introducir un valor para el límite de salida máximo.

      Número máximo de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden aproximadamente a entre 60 y 80 palabras.

      Especifica un valor inferior para las respuestas más cortas y un valor superior para las respuestas que puedan ser más largas.

    • Añadir secuencia de paradas: opcional. Introduce una secuencia de parada, que es una serie de caracteres que incluye espacios. Si el modelo encuentra una secuencia de parada, se detiene la generación de la respuesta. La secuencia de parada no se incluye en la respuesta y puedes añadir hasta cinco secuencias de parada.

  4. Opcional: Para configurar parámetros avanzados, haga clic en Avanzado y configure lo siguiente:

    Haz clic para desplegar las configuraciones avanzadas

    • Top-K: usa el control deslizante o el cuadro de texto para introducir un valor de top-K. (no disponible en Gemini 1.5).

      Top-K cambia la forma en que el modelo selecciona los tokens de salida. Un valor de K superior de 1 significa que el siguiente token seleccionado es el más probable de todos los tokens del vocabulario del modelo (también llamado decodificación voraz), mientras que un valor de K superior de 3 significa que el siguiente token se selecciona de entre los tres tokens más probables mediante la temperatura.

      En cada paso de selección de tokens, se muestrean los K tokens principales con las probabilidades más altas. Después, los tokens se filtran en función de la probabilidad P máxima y el token final se selecciona mediante un muestreo de temperatura.

      Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias.

    • Top-P: usa el control deslizante o el cuadro de texto para introducir un valor de top-P. Los tokens se seleccionan de más probable a menos probable hasta que la suma de sus probabilidades sea igual al valor de top-P. Para obtener los resultados menos variables, define top_p como 0.
    • Número máximo de respuestas: usa el control deslizante o el cuadro de texto para introducir el número de respuestas que quieres generar.
    • Respuestas graduales: habilita esta opción para imprimir las respuestas a medida que se generan.
    • Umbral del filtro de seguridad: selecciona el umbral de probabilidad de que veas respuestas que puedan ser dañinas.
    • Habilitar Grounding: Grounding no se admite en las peticiones multimodales.

  5. Haz clic en Insertar contenido multimedia y selecciona una fuente para el archivo.

    Subir

    Selecciona el archivo que quieras subir y haz clic en Abrir.

    Por URL

    Introduzca la URL del archivo que quiera usar y haga clic en Insertar.

    Cloud Storage

    Selecciona el contenedor y, a continuación, el archivo del contenedor que quieras importar y haz clic en Seleccionar.

    Google Drive

    1. Elige una cuenta y da tu consentimiento para que Vertex AI Studio acceda a ella la primera vez que selecciones esta opción. Puedes subir varios archivos que tengan un tamaño total de hasta 10 MB. Un archivo no puede superar los 7 MB.
    2. Haz clic en el archivo que quieras añadir.
    3. Haz clic en Seleccionar.

      La miniatura del archivo se muestra en el panel Petición. También se muestra el número total de tokens. Si los datos de tu petición superan el límite de tokens, los tokens se truncarán y no se incluirán en el procesamiento de tus datos.

  6. Escribe tu petición de texto en el panel Petición.

  7. Opcional: Para ver el ID de token a texto y los IDs de token, haz clic en el recuento de tokens del panel Petición.

  8. Haz clic en Enviar.

  9. Opcional: Para guardar tu petición en Mis peticiones, haz clic en Guardar.

  10. Opcional: Para obtener el código de Python o un comando curl para tu petición, haz clic en Obtener código.

Python

Instalar

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        "What is shown in this image?",
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/image/scones.jpg",
            mime_type="image/jpeg",
        ),
    ],
)
print(response.text)
# Example response:
# The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...

Go

Consulta cómo instalar o actualizar Go.

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithTextImage shows how to generate text using both text and image input
func generateWithTextImage(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "What is shown in this image?"},
			{FileData: &genai.FileData{
				// Image source: https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
				FileURI:  "gs://cloud-samples-data/generative-ai/image/scones.jpg",
				MIMEType: "image/jpeg",
			}},
		},
			Role: "user"},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// The image shows an overhead shot of a rustic, artistic arrangement on a surface that ...

	return nil
}

Node.js

Instalar

npm install @google/genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const ai = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const image = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/scones.jpg',
      mimeType: 'image/jpeg',
    },
  };

  const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [image, 'What is shown in this image?'],
  });

  console.log(response.text);

  return response.text;
}

Java

Consulta cómo instalar o actualizar Java.

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;

public class TextGenerationWithTextAndImage {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with text and image input
  public static String generateContent(String modelId) {
    // 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 (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromText("What is shown in this image?"),
                  Part.fromUri(
                      "gs://cloud-samples-data/generative-ai/image/scones.jpg", "image/jpeg")),
              null);

      System.out.print(response.text());
      // Example response:
      // The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...
      return response.text();
    }
  }
}

REST

Después de configurar tu entorno, puedes usar REST para probar una petición de texto. En el siguiente ejemplo se envía una solicitud al endpoint del modelo del editor.

Puedes incluir imágenes almacenadas en Cloud Storage o usar datos de imágenes codificados en base64.

Imagen en Cloud Storage

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • FILE_URI: URI o URL del archivo que se va a incluir en la petición. Entre los valores aceptados se incluyen los siguientes:
    • URI del segmento de Cloud Storage: el objeto debe ser de lectura pública o estar en el mismo proyecto Google Cloud que envía la solicitud. En gemini-2.0-flash y gemini-2.0-flash-lite, el límite de tamaño es de 2 GB.
    • URL HTTP: la URL del archivo debe ser de lectura pública. Puedes especificar un archivo de vídeo, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, vídeo y documentos no pueden superar los 15 MB.
    • URL del vídeo de YouTube: el vídeo de YouTube debe ser propiedad de la cuenta que has usado para iniciar sesión en la Google Cloud consola o debe ser público. Solo se admite una URL de vídeo de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de contenido multimedia (mimeType) del archivo. Si Controles de Servicio de VPC está habilitado, no se admite especificar una URL de archivo multimedia para fileURI.

    Si no tienes ningún archivo de imagen en Cloud Storage, puedes usar el siguiente archivo disponible públicamente: gs://cloud-samples-data/generative-ai/image/scones.jpg con el tipo MIME image/jpeg. Para ver esta imagen, abre el archivo de imagen de muestra.

  • MIME_TYPE: el tipo de contenido multimedia del archivo especificado en los campos data o fileUri. Entre los valores aceptados se incluyen los siguientes:

    Haz clic para desplegar los tipos de MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: las instrucciones de texto que se deben incluir en la petición. Por ejemplo: What is shown in this image?

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente.

Datos de imagen en Base64

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la región en la que se procesará la solicitud. Introduce una región admitida. Para ver la lista completa de regiones admitidas, consulta Ubicaciones disponibles.

    Haz clic para ver una lista parcial de las regiones disponibles

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: tu ID de proyecto.
  • B64_BASE_IMAGE
    La codificación Base64 de la imagen, el PDF o el vídeo que se va a incluir en la petición. Cuando incluyas contenido multimedia insertado, también debes especificar el tipo de contenido multimedia (mimeType) de los datos.
  • MIME_TYPE: el tipo de contenido multimedia del archivo especificado en los campos data o fileUri. Entre los valores aceptados se incluyen los siguientes:

    Haz clic para desplegar los tipos de MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: las instrucciones de texto que se deben incluir en la petición. Por ejemplo, What is shown in this image?.

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente.

Fíjate en lo siguiente de la URL de este ejemplo:
  • Usa el método generateContent para solicitar que la respuesta se devuelva una vez que se haya generado por completo. Para reducir la percepción de latencia de los usuarios, transmite la respuesta a medida que se genera mediante el método streamGenerateContent.
  • El ID del modelo multimodal se encuentra al final de la URL, antes del método (por ejemplo, gemini-2.0-flash). Es posible que esta muestra también admita otros modelos.

Varias imágenes

En cada una de las siguientes pestañas se muestra una forma diferente de incluir varias imágenes en una petición. Cada ejemplo toma dos conjuntos de las siguientes entradas:

  • Imagen de un monumento popular de una ciudad
  • Tipo de contenido de la imagen
  • Texto que indica la ciudad y el monumento de la imagen

La muestra también incluye una tercera imagen y un tipo de contenido multimedia, pero no texto. El ejemplo devuelve una respuesta de texto que indica la ciudad y el monumento de la tercera imagen.

Estas imágenes de ejemplo funcionan con todos los modelos multimodales de Gemini.

Consola

Para enviar una petición multimodal mediante la Google Cloud consola, sigue estos pasos:

  1. En la sección Vertex AI de la Google Cloud consola, ve a la página Vertex AI Studio.

    Ir a Vertex AI Studio

  2. Haz clic en Abrir a mano alzada.

  3. Opcional: Configura el modelo y los parámetros:

    • Modelo: selecciona un modelo.
    • Región: selecciona la región que quieras usar.
    • Temperatura: usa el control deslizante o el cuadro de texto para introducir un valor de temperatura.

      La temperatura se usa para el muestreo durante la generación de respuestas, que se produce cuando se aplican topP y topK. La temperatura controla el grado de aleatoriedad en la selección de tokens. Las temperaturas más bajas son adecuadas para las peticiones que requieren una respuesta menos abierta o creativa, mientras que las temperaturas más altas pueden dar lugar a resultados más diversos o creativos. Una temperatura de 0 significa que siempre se seleccionan los tokens con la probabilidad más alta. En este caso, las respuestas a una petición determinada son mayormente deterministas, pero sigue siendo posible que haya una pequeña variación.

      Si el modelo devuelve una respuesta demasiado genérica o demasiado corta, o bien una respuesta alternativa, prueba a aumentar la temperatura.

    • Límite de tokens de salida: usa el control deslizante o el cuadro de texto para introducir un valor para el límite de salida máximo.

      Número máximo de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden aproximadamente a entre 60 y 80 palabras.

      Especifica un valor inferior para las respuestas más cortas y un valor superior para las respuestas que puedan ser más largas.

    • Añadir secuencia de paradas: opcional. Introduce una secuencia de parada, que es una serie de caracteres que incluye espacios. Si el modelo encuentra una secuencia de parada, se detiene la generación de la respuesta. La secuencia de parada no se incluye en la respuesta y puedes añadir hasta cinco secuencias de parada.

  4. Opcional: Para configurar parámetros avanzados, haga clic en Avanzado y configure lo siguiente:

    Haz clic para desplegar las configuraciones avanzadas

    • Top-K: usa el control deslizante o el cuadro de texto para introducir un valor de top-K. (no disponible en Gemini 1.5).

      Top-K cambia la forma en que el modelo selecciona los tokens de salida. Un valor de K superior de 1 significa que el siguiente token seleccionado es el más probable de todos los tokens del vocabulario del modelo (también llamado decodificación voraz), mientras que un valor de K superior de 3 significa que el siguiente token se selecciona de entre los tres tokens más probables mediante la temperatura.

      En cada paso de selección de tokens, se muestrean los K tokens principales con las probabilidades más altas. Después, los tokens se filtran en función de la probabilidad P máxima y el token final se selecciona mediante un muestreo de temperatura.

      Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias.

    • Top-P: usa el control deslizante o el cuadro de texto para introducir un valor de top-P. Los tokens se seleccionan de más probable a menos probable hasta que la suma de sus probabilidades sea igual al valor de top-P. Para obtener los resultados menos variables, define top_p como 0.
    • Número máximo de respuestas: usa el control deslizante o el cuadro de texto para introducir el número de respuestas que quieres generar.
    • Respuestas graduales: habilita esta opción para imprimir las respuestas a medida que se generan.
    • Umbral del filtro de seguridad: selecciona el umbral de probabilidad de que veas respuestas que puedan ser dañinas.
    • Habilitar Grounding: Grounding no se admite en las peticiones multimodales.

  5. Haz clic en Insertar contenido multimedia y selecciona una fuente para el archivo.

    Subir

    Selecciona el archivo que quieras subir y haz clic en Abrir.

    Por URL

    Introduzca la URL del archivo que quiera usar y haga clic en Insertar.

    Cloud Storage

    Selecciona el contenedor y, a continuación, el archivo del contenedor que quieras importar y haz clic en Seleccionar.

    Google Drive

    1. Elige una cuenta y da tu consentimiento para que Vertex AI Studio acceda a ella la primera vez que selecciones esta opción. Puedes subir varios archivos que tengan un tamaño total de hasta 10 MB. Un archivo no puede superar los 7 MB.
    2. Haz clic en el archivo que quieras añadir.
    3. Haz clic en Seleccionar.

      La miniatura del archivo se muestra en el panel Petición. También se muestra el número total de tokens. Si los datos de tu petición superan el límite de tokens, los tokens se truncarán y no se incluirán en el procesamiento de tus datos.

  6. Escribe tu petición de texto en el panel Petición.

  7. Opcional: Para ver el ID de token a texto y los IDs de token, haz clic en el recuento de tokens del panel Petición.

  8. Haz clic en Enviar.

  9. Opcional: Para guardar tu petición en Mis peticiones, haz clic en Guardar.

  10. Opcional: Para obtener el código de Python o un comando curl para tu petición, haz clic en Obtener código.

Python

Instalar

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Read content from GCS
gcs_file_img_path = "gs://cloud-samples-data/generative-ai/image/scones.jpg"

# Read content from a local file
with open("test_data/latte.jpg", "rb") as f:
    local_file_img_bytes = f.read()

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        "Generate a list of all the objects contained in both images.",
        Part.from_uri(file_uri=gcs_file_img_path, mime_type="image/jpeg"),
        Part.from_bytes(data=local_file_img_bytes, mime_type="image/jpeg"),
    ],
)
print(response.text)
# Example response:
# Okay, here's the list of objects present in both images:
# ...

Go

Consulta cómo instalar o actualizar Go.

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import (
	"context"
	"fmt"
	"io"
	"os"

	genai "google.golang.org/genai"
)

// generateWithMultiImg shows how to generate text using multiple image inputs.
func generateWithMultiImg(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	// TODO(Developer): Update the path to file (image source:
	//   https://storage.googleapis.com/cloud-samples-data/generative-ai/image/latte.jpg )
	imageBytes, err := os.ReadFile("./latte.jpg")
	if err != nil {
		return fmt.Errorf("failed to read image: %w", err)
	}

	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "Write an advertising jingle based on the items in both images."},
			{FileData: &genai.FileData{
				// Image source: https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
				FileURI:  "gs://cloud-samples-data/generative-ai/image/scones.jpg",
				MIMEType: "image/jpeg",
			}},
			{InlineData: &genai.Blob{
				Data:     imageBytes,
				MIMEType: "image/jpeg",
			}},
		}},
	}
	modelName := "gemini-2.5-flash"

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// Okay, here's an advertising jingle inspired by the blueberry scones, coffee, flowers, chocolate cake, and latte:
	//
	// (Upbeat, jazzy music)
	// ...

	return nil
}

Node.js

Instalar

npm install @google/genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const ai = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const image1 = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/scones.jpg',
      mimeType: 'image/jpeg',
    },
  };

  const image2 = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/fruit.png',
      mimeType: 'image/png',
    },
  };

  const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [
      image1,
      image2,
      'Generate a list of all the objects contained in both images.',
    ],
  });

  console.log(response.text);

  return response.text;
}

Java

Consulta cómo instalar o actualizar Java.

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class TextGenerationWithMultiImage {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    // Content from Google Cloud Storage
    String gcsFileImagePath = "gs://cloud-samples-data/generative-ai/image/scones.jpg";
    String localImageFilePath = "resources/latte.jpg";
    generateContent(modelId, gcsFileImagePath, localImageFilePath);
  }

  // Generates text with multiple images
  public static String generateContent(
      String modelId, String gcsFileImagePath, String localImageFilePath) 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 (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      // Read content from a local file.
      byte[] localFileImgBytes = Files.readAllBytes(Paths.get(localImageFilePath));

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromText("Generate a list of all the objects contained in both images"),
                  Part.fromBytes(localFileImgBytes, "image/jpeg"),
                  Part.fromUri(gcsFileImagePath, "image/jpeg")),
              null);

      System.out.print(response.text());
      // Example response:
      // Okay, here's the list of objects present in both images:
      //
      // **Image 1 (Scones):**
      //
      // *   Scones
      // *   Plate
      // *   Jam/Preserve
      // *   Cream/Butter
      // *   Table/Surface
      // *   Napkin/Cloth (possibly)
      //
      // **Image 2 (Latte):**
      //
      // *   Latte/Coffee cup
      // *   Saucer
      // *   Spoon
      // *   Table/Surface
      // *   Foam/Latte art
      //
      // **Objects potentially in both (depending on interpretation and specific items):**
      //
      // *   Plate/Saucer (both are serving dishes)
      // *   Table/Surface
      return response.text();
    }
  }
}

REST

Después de configurar tu entorno, puedes usar REST para probar una petición de texto. En el siguiente ejemplo se envía una solicitud al endpoint del modelo del editor.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: .
  • FILE_URI1: URI o URL del archivo que se va a incluir en la petición. Entre los valores aceptados se incluyen los siguientes:
    • URI del segmento de Cloud Storage: el objeto debe ser de lectura pública o estar en el mismo proyecto Google Cloud que envía la solicitud. En gemini-2.0-flash y gemini-2.0-flash-lite, el límite de tamaño es de 2 GB.
    • URL HTTP: la URL del archivo debe ser de lectura pública. Puedes especificar un archivo de vídeo, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, vídeo y documentos no pueden superar los 15 MB.
    • URL del vídeo de YouTube: el vídeo de YouTube debe ser propiedad de la cuenta que has usado para iniciar sesión en la Google Cloud consola o debe ser público. Solo se admite una URL de vídeo de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de contenido multimedia (mimeType) del archivo. Si Controles de Servicio de VPC está habilitado, no se admite especificar una URL de archivo multimedia para fileURI.

    Si no tienes ningún archivo de imagen en Cloud Storage, puedes usar el siguiente archivo disponible públicamente: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png con el tipo MIME image/png. Para ver esta imagen, abre el archivo de imagen de muestra.

  • MIME_TYPE: el tipo de contenido multimedia del archivo especificado en los campos data o fileUri. Entre los valores aceptados se incluyen los siguientes:

    Haz clic para desplegar los tipos de MIME

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
    Para simplificar, en este ejemplo se usa el mismo tipo de contenido multimedia para las tres imágenes de entrada.
  • TEXT1: las instrucciones de texto que se deben incluir en la petición. Por ejemplo: city: Rome, Landmark: the Colosseum
  • FILE_URI2: URI o URL del archivo que se va a incluir en la petición. Entre los valores aceptados se incluyen los siguientes:
    • URI del segmento de Cloud Storage: el objeto debe ser de lectura pública o estar en el mismo proyecto Google Cloud que envía la solicitud. En gemini-2.0-flash y gemini-2.0-flash-lite, el límite de tamaño es de 2 GB.
    • URL HTTP: la URL del archivo debe ser de lectura pública. Puedes especificar un archivo de vídeo, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, vídeo y documentos no pueden superar los 15 MB.
    • URL del vídeo de YouTube: el vídeo de YouTube debe ser propiedad de la cuenta que has usado para iniciar sesión en la Google Cloud consola o debe ser público. Solo se admite una URL de vídeo de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de contenido multimedia (mimeType) del archivo. Si Controles de Servicio de VPC está habilitado, no se admite especificar una URL de archivo multimedia para fileURI.

    Si no tienes ningún archivo de imagen en Cloud Storage, puedes usar el siguiente archivo disponible públicamente: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png con el tipo MIME image/png. Para ver esta imagen, abre el archivo de imagen de muestra.

  • TEXT2: las instrucciones de texto que se deben incluir en la petición. Por ejemplo: city: Beijing, Landmark: Forbidden City
  • FILE_URI3: URI o URL del archivo que se va a incluir en la petición. Entre los valores aceptados se incluyen los siguientes:
    • URI del segmento de Cloud Storage: el objeto debe ser de lectura pública o estar en el mismo proyecto Google Cloud que envía la solicitud. En gemini-2.0-flash y gemini-2.0-flash-lite, el límite de tamaño es de 2 GB.
    • URL HTTP: la URL del archivo debe ser de lectura pública. Puedes especificar un archivo de vídeo, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, vídeo y documentos no pueden superar los 15 MB.
    • URL del vídeo de YouTube: el vídeo de YouTube debe ser propiedad de la cuenta que has usado para iniciar sesión en la Google Cloud consola o debe ser público. Solo se admite una URL de vídeo de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de contenido multimedia (mimeType) del archivo. Si Controles de Servicio de VPC está habilitado, no se admite especificar una URL de archivo multimedia para fileURI.

    Si no tienes ningún archivo de imagen en Cloud Storage, puedes usar el siguiente archivo disponible públicamente: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png con el tipo MIME image/png. Para ver esta imagen, abre el archivo de imagen de muestra.

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI1",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT1"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI2",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT2"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI3",
          "mimeType": "MIME_TYPE"
        }
      }
    ]
  }
}
EOF

A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI1",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT1"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI2",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT2"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI3",
          "mimeType": "MIME_TYPE"
        }
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente.

Fíjate en lo siguiente de la URL de este ejemplo:
  • Usa el método generateContent para solicitar que la respuesta se devuelva una vez que se haya generado por completo. Para reducir la percepción de latencia de los usuarios, transmite la respuesta a medida que se genera mediante el método streamGenerateContent.
  • El ID del modelo multimodal se encuentra al final de la URL, antes del método (por ejemplo, gemini-2.0-flash). Es posible que esta muestra también admita otros modelos.

Definir parámetros de modelo opcionales

Cada modelo tiene un conjunto de parámetros opcionales que puedes definir. Para obtener más información, consulte Parámetros de generación de contenido.

Tokenización de imágenes

A continuación, se explica cómo se calculan los tokens de las imágenes:

  • Si ambas dimensiones de una imagen son inferiores o iguales a 384 píxeles, se usan 258 tokens.
  • Si una de las dimensiones de una imagen es superior a 384 píxeles, la imagen se recorta en mosaicos. El tamaño predeterminado de cada baldosa es la dimensión más pequeña (anchura o altura) dividida por 1,5. Si es necesario, cada baldosa se ajusta para que no sea inferior a 256 píxeles ni superior a 768 píxeles. A continuación, se cambia el tamaño de cada baldosa a 768x768 y se usan 258 tokens.

Prácticas recomendadas

Cuando uses imágenes, sigue estas prácticas recomendadas e información para obtener los mejores resultados:

  • Si quieres detectar texto en una imagen, usa peticiones con una sola imagen para obtener mejores resultados que con peticiones con varias imágenes.
  • Si tu petición contiene una sola imagen, colócala antes de la petición de texto en tu solicitud.
  • Si tu petición contiene varias imágenes y quieres hacer referencia a ellas más adelante en la petición o que el modelo haga referencia a ellas en la respuesta, puede ser útil asignar un índice a cada imagen antes de la imagen. Usa a b c o image 1 image 2 image 3 para tu índice. A continuación, se muestra un ejemplo de cómo usar imágenes indexadas en una petición:
    image 1 
    image 2 
    image 3 
    
    Write a blogpost about my day using image 1 and image 2. Then, give me ideas
    for tomorrow based on image 3.
  • Usa imágenes con una resolución más alta, ya que ofrecen mejores resultados.
  • Incluye algunos ejemplos en la petición.
  • Gira las imágenes hasta que tengan la orientación correcta antes de añadirlas a la petición.
  • Evita las imágenes borrosas.

Limitaciones

Aunque los modelos multimodales de Gemini son potentes en muchos casos de uso multimodal, es importante conocer sus limitaciones:

  • Moderación de contenido: los modelos se niegan a proporcionar respuestas sobre imágenes que infrinjan nuestras políticas de seguridad.
  • Razonamiento espacial: los modelos no son precisos a la hora de localizar texto u objetos en imágenes. Puede que solo devuelvan el número aproximado de objetos.
  • Usos médicos: los modelos no son adecuados para interpretar imágenes médicas (por ejemplo, radiografías y tomografías computarizadas) ni para ofrecer consejos médicos.
  • Reconocimiento de personas: los modelos no se deben usar para identificar a personas que no sean famosas en las imágenes.
  • Precisión: los modelos pueden tener alucinaciones o cometer errores al interpretar imágenes de baja calidad, giradas o de resolución extremadamente baja. Los modelos también pueden alucinar al interpretar texto escrito a mano en documentos de imágenes.

Siguientes pasos