Comprensión de imágenes

Puedes agregar imágenes a las solicitudes de Gemini para realizar tareas que impliquen comprender el contenido de las imágenes incluidas. En esta página, se muestra cómo agregar imágenes a tus solicitudes a Gemini en Vertex AI con la consola deGoogle Cloud y la API de Vertex AI.

Modelos compatibles

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

Modelo Detalles de los medios Tipos de MIME
Gemini 2.5 Flash-Lite
  • Cantidad máxima de imágenes por instrucción: 3,000
  • Tamaño máximo de la imagen: 7 MB
  • Cantidad máxima de imágenes de salida por instrucción: 10
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash con generación de imágenes
  • Cantidad máxima de imágenes por instrucción: 3,000
  • Tamaño máximo de la imagen: 7 MB
  • Cantidad máxima de imágenes de salida por instrucción: 10
  • Cantidad máxima de tokens por minuto (TPM) por proyecto:
    • Resolución de medios alta, media o predeterminada:
      • EE.UU./Asia: 40 M
      • UE: 10 millones
    • Baja resolución de los medios:
      • EE.UU./Asia: 10 millones
      • UE: 3 M
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.5 Pro
  • Cantidad máxima de imágenes por instrucción: 3,000
  • Tamaño máximo de la imagen: 7 MB
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.5 Flash
  • Cantidad máxima de imágenes por instrucción: 3,000
  • Tamaño máximo de la imagen: 7 MB
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash
  • Cantidad máxima de imágenes por instrucción: 3,000
  • Tamaño máximo de la imagen: 7 MB
  • Cantidad máxima de tokens por minuto (TPM) por proyecto:
    • Resolución de medios alta, media o predeterminada:
      • EE.UU./Asia: 40 M
      • UE: 10 millones
    • Baja resolución de los medios:
      • EE.UU./Asia: 10 millones
      • UE: 2.6 M
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash-Lite
  • Cantidad máxima de imágenes por instrucción: 3,000
  • Tamaño máximo de la imagen: 7 MB
  • Cantidad máxima de tokens por minuto (TPM):
    • Resolución de medios alta, media o predeterminada:
      • EE.UU./Asia: 6.7 M
      • UE: 2.6 M
    • Baja resolución de los medios:
      • 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 obtener una lista de los idiomas compatibles con los modelos de Gemini, consulta la información del modelo de los Modelos de Google. Para obtener más información sobre cómo diseñar instrucciones multimodales, consulta Diseña instrucciones multimodales. Si buscas una manera de usar Gemini directamente desde tus apps web y para dispositivos móviles, consulta los SDKs de cliente de Firebase AI Logic para apps de Swift, Android, Web, Flutter y Unity.

Agrega imágenes a una solicitud

Puedes agregar una o varias imágenes a tu solicitud de Gemini.

Imagen única

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

Console

Para enviar una instrucción multimodal con la Google Cloud consola, haz lo siguiente:

  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 formato libre.

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

    • Modelo: Selecciona un modelo.
    • Región: selecciona la región que deseas usar.
    • Temperatura: Usa el control deslizante o el cuadro de texto para ingresar un valor de temperatura.

      La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican topP y topK. La temperatura controla el grado de aleatorización en la selección de tokens. Las temperaturas más bajas son buenas para los mensajes que requieren una respuesta menos abierta o de creativa, mientras que las temperaturas más altas pueden generar resultados más diversos o creativos. Una temperatura de 0 significa que siempre se seleccionan los tokens de probabilidad más alta. En este caso, las respuestas para un mensaje determinado son, en su mayoría, deterministas, pero es posible que haya una pequeña cantidad de variación.

      Si el modelo muestra una respuesta demasiado genérica, demasiado corta o el modelo proporciona una respuesta de resguardo, intenta aumentar la temperatura.

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

      Cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene casi cuatro caracteres. 100 tokens corresponden a casi 60 u 80 palabras.

      Especifica un valor más bajo para las respuestas más cortas y un valor más alto para las respuestas potencialmente más largas.

    • Agrega una secuencia de detención: Opcional. Ingresa una secuencia de detención, que es una serie de caracteres que incluyen espacios. Si el modelo encuentra una secuencia de detención, la generación de respuesta se detiene. La secuencia de detención no se incluye en la respuesta y puedes agregar hasta cinco secuencias de detención.

  4. Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:

    Haz clic para expandir las configuraciones avanzadas

    • K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior. (no es compatible con Gemini 1.5).

      El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. K superior a 1 significa que el siguiente token seleccionado es el más probable entre todos los tokens en el vocabulario del modelo (también llamado decodificación voraz), mientras que el K superior a 3 significa que el siguiente token se selecciona de los tres tokens más probables mediante la temperatura.

      Para cada paso de selección de tokens, se muestran los tokens de K superior con las probabilidades más altas. Luego, los tokens se filtran según el superior con el token final seleccionado mediante el muestreo de temperatura.

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

    • P superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor de P superior. Los tokens se seleccionan del más probable al menos hasta que la suma de sus probabilidades sea igual al valor de P superior. Para obtener los resultados menos variables, establece top-P como 0.
    • Respuestas máximas: Usa el control deslizante o el cuadro de texto para ingresar un valor para la cantidad de respuestas que se generarán.
    • Respuestas de transmisión: Habilita esta opción para imprimir las respuestas a medida que se generan.
    • Umbral del filtro de seguridad: Selecciona el umbral de probabilidad de ver respuestas que podrían ser dañinas.
    • Habilitar fundamentos: Los fundamentos no son compatibles con las instrucciones multimodales.

  5. Haz clic en Insertar medios y selecciona una fuente para tu archivo.

    Subir

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

    Por URL

    Ingresa la URL del archivo que quieres usar y haz clic en Insertar.

    Cloud Storage

    Selecciona el bucket y, luego, el archivo del bucket que deseas importar y haz clic en Seleccionar.

    Google Drive

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

      La miniatura del archivo se muestra en el panel Instrucción. También se muestra la cantidad total de tokens. Si los datos de la instrucción superan el límite de tokens, los tokens se truncan y no se incluyen en el procesamiento de tus datos.

  6. Ingresa tu mensaje de texto en el panel Mensaje.

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

  8. Haz clic en Enviar.

  9. Opcional: Para guardar la instrucción en Mis instrucciones, haz clic en Guardar.

  10. Opcional: Para obtener el código de Python o un comando curl para tu instrucció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.

Establece 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

Obtén información para instalar o actualizar Go.

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

Establece 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.

Establece 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

Obtén información para instalar o actualizar Java.

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

Establece 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 GenerateContentWithTextAndImage {

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

  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()
        .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 instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.

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

Imagen en Cloud Storage

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • FILE_URI: Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:
    • URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto Google Cloud que envía la solicitud. Para 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 legible públicamente. Puedes especificar un archivo de video, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, los archivos de video y los documentos no pueden superar los 15 MB.
    • URL del video de YouTube: El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la Google Cloud consola o ser público. Solo se admite una URL de video de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de medio (mimeType) del archivo. Si los Controles del servicio de VPC están habilitados, no se admite la especificación de una URL de archivo multimedia para fileURI.

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

  • MIME_TYPE El tipo de medio del archivo especificado en los campos data o fileUri. Los valores aceptables son los siguientes:

    Haz clic para expandir 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 incluirán en el mensaje. 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:

Datos de imágenes en base64

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La región para procesar la solicitud. Ingresa una región compatible. Para obtener la lista completa de regiones admitidas, consulta Ubicaciones disponibles.

    Haz clic para expandir una lista parcial de regiones disponibles

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: El ID del proyecto.
  • B64_BASE_IMAGE
    La codificación en base64 de la imagen o el video que se incluirá intercalada en la instrucción. Si incluyes contenido multimedia intercalado, también debes especificar el tipo de medio (mimeType) de los datos.
  • MIME_TYPE El tipo de medio del archivo especificado en los campos data o fileUri. Los valores aceptables son los siguientes:

    Haz clic para expandir 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 incluirán en el mensaje. 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 comando siguiente en la terminal para crear o reemplazar 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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:

Ten en cuenta lo siguiente en la URL para esta muestra:
  • Usa el método generateContent para solicitar que la respuesta se muestre después de que se haya generado por completo. Para reducir la percepción de latencia a un público humano, transmite la respuesta a medida que se genera; para ello, usa 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). Esta muestra también puede admitir 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 solicitud de instrucciones. En cada ejemplo, se toman dos conjuntos de las siguientes entradas:

  • Imagen de un punto de referencia de una ciudad popular
  • El tipo de medio de la imagen
  • Texto que indica la ciudad y el punto de referencia en la imagen

La muestra también toma una tercera imagen y tipo de medio, pero no texto. En el ejemplo, se muestra una respuesta de texto que indica la ciudad y el punto de referencia en la tercera imagen.

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

Console

Para enviar una instrucción multimodal con la Google Cloud consola, haz lo siguiente:

  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 formato libre.

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

    • Modelo: Selecciona un modelo.
    • Región: selecciona la región que deseas usar.
    • Temperatura: Usa el control deslizante o el cuadro de texto para ingresar un valor de temperatura.

      La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican topP y topK. La temperatura controla el grado de aleatorización en la selección de tokens. Las temperaturas más bajas son buenas para los mensajes que requieren una respuesta menos abierta o de creativa, mientras que las temperaturas más altas pueden generar resultados más diversos o creativos. Una temperatura de 0 significa que siempre se seleccionan los tokens de probabilidad más alta. En este caso, las respuestas para un mensaje determinado son, en su mayoría, deterministas, pero es posible que haya una pequeña cantidad de variación.

      Si el modelo muestra una respuesta demasiado genérica, demasiado corta o el modelo proporciona una respuesta de resguardo, intenta aumentar la temperatura.

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

      Cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene casi cuatro caracteres. 100 tokens corresponden a casi 60 u 80 palabras.

      Especifica un valor más bajo para las respuestas más cortas y un valor más alto para las respuestas potencialmente más largas.

    • Agrega una secuencia de detención: Opcional. Ingresa una secuencia de detención, que es una serie de caracteres que incluyen espacios. Si el modelo encuentra una secuencia de detención, la generación de respuesta se detiene. La secuencia de detención no se incluye en la respuesta y puedes agregar hasta cinco secuencias de detención.

  4. Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:

    Haz clic para expandir las configuraciones avanzadas

    • K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior. (no es compatible con Gemini 1.5).

      El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. K superior a 1 significa que el siguiente token seleccionado es el más probable entre todos los tokens en el vocabulario del modelo (también llamado decodificación voraz), mientras que el K superior a 3 significa que el siguiente token se selecciona de los tres tokens más probables mediante la temperatura.

      Para cada paso de selección de tokens, se muestran los tokens de K superior con las probabilidades más altas. Luego, los tokens se filtran según el superior con el token final seleccionado mediante el muestreo de temperatura.

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

    • P superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor de P superior. Los tokens se seleccionan del más probable al menos hasta que la suma de sus probabilidades sea igual al valor de P superior. Para obtener los resultados menos variables, establece top-P como 0.
    • Respuestas máximas: Usa el control deslizante o el cuadro de texto para ingresar un valor para la cantidad de respuestas que se generarán.
    • Respuestas de transmisión: Habilita esta opción para imprimir las respuestas a medida que se generan.
    • Umbral del filtro de seguridad: Selecciona el umbral de probabilidad de ver respuestas que podrían ser dañinas.
    • Habilitar fundamentos: Los fundamentos no son compatibles con las instrucciones multimodales.

  5. Haz clic en Insertar medios y selecciona una fuente para tu archivo.

    Subir

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

    Por URL

    Ingresa la URL del archivo que quieres usar y haz clic en Insertar.

    Cloud Storage

    Selecciona el bucket y, luego, el archivo del bucket que deseas importar y haz clic en Seleccionar.

    Google Drive

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

      La miniatura del archivo se muestra en el panel Instrucción. También se muestra la cantidad total de tokens. Si los datos de la instrucción superan el límite de tokens, los tokens se truncan y no se incluyen en el procesamiento de tus datos.

  6. Ingresa tu mensaje de texto en el panel Mensaje.

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

  8. Haz clic en Enviar.

  9. Opcional: Para guardar la instrucción en Mis instrucciones, haz clic en Guardar.

  10. Opcional: Para obtener el código de Python o un comando curl para tu instrucció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.

Establece 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

Obtén información para instalar o actualizar Go.

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

Establece 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.0-flash-001"

	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.

Establece 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.0-flash',
    contents: [
      image1,
      image2,
      'Generate a list of all the objects contained in both images.',
    ],
  });

  console.log(response.text);

  return response.text;
}

Java

Obtén información para instalar o actualizar Java.

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

Establece 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.0-flash";
    // Content from Google Cloud Storage
    String gcsFileImagePath = "gs://cloud-samples-data/generative-ai/image/scones.jpg";
    String localImageFilePath = "test_data/latte.jpg";

    generateContent(modelId, gcsFileImagePath, localImageFilePath);
  }

  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()
        .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 instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • FILE_URI1: Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:
    • URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto Google Cloud que envía la solicitud. Para 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 legible públicamente. Puedes especificar un archivo de video, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, los archivos de video y los documentos no pueden superar los 15 MB.
    • URL del video de YouTube: El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la Google Cloud consola o ser público. Solo se admite una URL de video de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de medio (mimeType) del archivo. Si los Controles del servicio de VPC están habilitados, no se admite la especificación de una URL de archivo multimedia para fileURI.

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

  • MIME_TYPE El tipo de medio del archivo especificado en los campos data o fileUri. Los valores aceptables son los siguientes:

    Haz clic para expandir 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
    A fin de simplificar, en esta muestra se usa el mismo tipo de medio para las tres imágenes de entrada.
  • TEXT1: Las instrucciones de texto que se incluirán en el mensaje. Por ejemplo, city: Rome, Landmark: the Colosseum
  • FILE_URI2: Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:
    • URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto Google Cloud que envía la solicitud. Para 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 legible públicamente. Puedes especificar un archivo de video, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, los archivos de video y los documentos no pueden superar los 15 MB.
    • URL del video de YouTube: El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la Google Cloud consola o ser público. Solo se admite una URL de video de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de medio (mimeType) del archivo. Si los Controles del servicio de VPC están habilitados, no se admite la especificación de una URL de archivo multimedia para fileURI.

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

  • TEXT2: Las instrucciones de texto que se incluirán en el mensaje. Por ejemplo, city: Beijing, Landmark: Forbidden City
  • FILE_URI3: Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:
    • URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto Google Cloud que envía la solicitud. Para 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 legible públicamente. Puedes especificar un archivo de video, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, los archivos de video y los documentos no pueden superar los 15 MB.
    • URL del video de YouTube: El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la Google Cloud consola o ser público. Solo se admite una URL de video de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de medio (mimeType) del archivo. Si los Controles del servicio de VPC están habilitados, no se admite la especificación de una URL de archivo multimedia para fileURI.

    Si no tienes un archivo de imagen en Cloud Storage, puedes usar el siguiente archivo disponible de forma pública: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png con un tipo de MIME de 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 comando siguiente en la terminal para crear o reemplazar 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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 que se muestra a continuación:

Ten en cuenta lo siguiente en la URL para esta muestra:
  • Usa el método generateContent para solicitar que la respuesta se muestre después de que se haya generado por completo. Para reducir la percepción de latencia a un público humano, transmite la respuesta a medida que se genera; para ello, usa 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). Esta muestra también puede admitir otros modelos.

Cómo establecer parámetros del modelo opcionales

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

Tokenización de imágenes

A continuación, te mostramos cómo se calculan los tokens para las imágenes:

  • Si ambas dimensiones de una imagen son menores o iguales que 384 píxeles, se usan 258 tokens.
  • Si una dimensión de una imagen es superior a 384 píxeles, la imagen se corta en mosaicos. El tamaño de cada mosaico se establece de forma predeterminada en la dimensión más pequeña (ancho o alto) dividida por 1.5. Si es necesario, cada mosaico se ajusta para que no sea inferior a 256 píxeles ni mayor que 768 píxeles. Luego, cada tarjeta cambia de tamaño a 768 × 768 y usa 258 tokens.

Prácticas recomendadas

Cuando uses imágenes, usa la siguiente información y prácticas recomendadas para obtener los mejores resultados.

  • Si quieres detectar texto en una imagen, usa instrucciones con una sola imagen para producir mejores resultados que las instrucciones con varias imágenes.
  • Si la instrucción contiene una sola imagen, colócala antes de la instrucción de texto en tu solicitud.
  • Si tu instrucción contiene varias imágenes y quieres consultarlas más adelante en la instrucción o hacer que el modelo haga referencia a ellas en la respuesta del modelo, puede ser útil darle a cada imagen un índice antes de que aparezca. Usa a b c or image 1 image 2 image 3 para tu índice. El siguiente es un ejemplo del uso de imágenes indexadas en un mensaje:
    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 mayor resolución, ya que producen mejores resultados.
  • Incluye algunos ejemplos en el mensaje.
  • Rota las imágenes a su orientación adecuada antes de agregarlas al mensaje.
  • Evita las imágenes borrosas.

Limitaciones

Si bien los modelos multimodales de Gemini son potentes en muchos casos de usuarios multimodales, es importante comprender las limitaciones de los modelos:

  • Moderación de contenido: Los modelos se niegan a proporcionar respuestas en las imágenes que infringen nuestras políticas de seguridad.
  • Razonamiento espacial: Los modelos no son precisos para ubicar texto u objetos en imágenes. Es posible que solo muestren los recuentos aproximados de los 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 brindar asesoramiento médico.
  • Reconocimiento de personas: Los modelos no están diseñados para identificar personas que no sean celebridades en imágenes.
  • Precisión: Los modelos pueden tener alucinaciones o cometer errores cuando interpretan imágenes de baja calidad, rotadas o de resolución extremadamente baja. Los modelos también pueden tener alucinaciones cuando se interpreta texto escrito a mano en documentos de imágenes.

¿Qué sigue?