La familia de modelos de Gemini incluye modelos que funcionan con solicitudes de instrucciones multimodales. El término multimodal indica que puedes usar más de una modalidad, o tipo de entrada, en una instrucción. Los modelos que no son multimodales aceptan instrucciones solo con texto. Las modalidades pueden incluir texto, audio, video y mucho más.
Hay varias formas de implementar soluciones multimodales con la API de Gemini, incluidos los SDK de Python, Node.js, Java y Go, la consola de Google Cloud y la API de REST. En las muestras de código que aparecen más adelante en este documento, se demuestra cómo crear soluciones multimodales con estas opciones.
Los modelos multimodales de Gemini son los siguientes:
- Gemini 1.5 Flash
- Gemini 1.5 Pro
- Gemini 1.0 Pro Vision
En la siguiente tabla, se indica con qué modalidades funciona cada API de Gemini multimodal en una solicitud de instrucciones.
Modelo | Texto | Código | Imágenes | Audio | Video | Video/audio | |
---|---|---|---|---|---|---|---|
Gemini 1.5 Flash | |||||||
Gemini 1.5 Pro | |||||||
Gemini 1.0 Pro Vision | |||||||
Gemini 1.0 Pro |
Para explorar un modelo multimodal en la consola de Google Cloud, selecciona su tarjeta del modelo en Model Garden:
- Ir a la tarjeta del modelo Flash 1.5 de Gemini
- Ir a la tarjeta del modelo Gemini 1.5 Pro
- Ir a la tarjeta del modelo de Gemini 1.0 Pro Vision
Para obtener una lista de los idiomas compatibles con los modelos de Gemini, consulta en la información del modelo los Idiomas admitidos. 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 SDK de IA de Google para Android, Swift y Web.
Diferencias del modelo multimodal
Las diferencias entre los modelos multimodales de Gemini se especifican en las siguientes tablas. Puedes usar esta información para decidir qué modelo es mejor para ti.
Texto
A continuación, se muestran algunas de las diferencias en la modalidad de texto entre los modelos multimodales de Gemini:
Modelo | Detalles de la modalidad de texto |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La longitud del contexto es de 1 millón de tokens, lo que equivale a aproximadamente un libro de 4,000 páginas. Esto permite que el modelo genere texto de formato largo, como libros, varios archivos PDF o manuales de usuario. |
Gemini 1.0 Pro Vision | La cantidad máxima de tokens es 16,384 o un libro de alrededor de 128 páginas suponiendo 250 palabras por página. Este máximo incluye tokens de entrada y salida. La cantidad máxima de tokens de salida es 2,048. |
Código
A continuación, se muestran algunas de las diferencias entre los modelos multimodales de Gemini cuando se trabaja con código:
Modelo | Detalles de la modalidad de código |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La longitud del contexto es de 1 millón de tokens, lo que permite que el modelo funcione con una base de código completa o con una base de código de la aplicación completa. |
Gemini 1.0 Pro Vision | La cantidad máxima de tokens es 16,384 o un libro de alrededor de 128 páginas suponiendo 250 palabras por página. Este máximo incluye tokens de entrada y salida. La cantidad máxima de tokens de salida es 2,048. |
De imagen
A continuación, se muestran algunas de las diferencias en la modalidad de imagen entre los modelos multimodales de Gemini:
Modelo | Detalles de la modalidad de imagen |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La cantidad máxima de imágenes por instrucción es de 3,000. |
Gemini 1.0 Pro Vision | La cantidad máxima de imágenes por instrucción es de 16. |
Audio (solo voz)
A continuación, se muestran algunas de las diferencias en la modalidad de audio entre los modelos multimodales de Gemini:
Modelo | Detalles de la modalidad de audio |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La cantidad máxima de horas de audio por instrucción es de aproximadamente 8.4 horas o hasta 1 millón de tokens. La voz se puede comprender para el resumen de audio, la transcripción y la traducción. |
Gemini 1.0 Pro Vision | No se admite el audio. |
Video
A continuación, se muestran algunas de las diferencias en la modalidad de video entre los modelos multimodales de Gemini:
Modelo | Detalles de la modalidad de video |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La duración máxima del video si incluye audio es de aproximadamente 50 minutos. La duración máxima de video sin audio es de 1 hora. La cantidad máxima de videos por instrucción es de 10. El modelo puede usar datos de video y audio para responder a la instrucción. Por ejemplo, puede resumir un video usando tanto el contenido visual como la voz del video. |
Gemini 1.0 Pro Vision | La duración máxima del video es de 2 minutos. La cantidad máxima de videos por instrucción es 1. Se ignorará el audio en el video. |
A continuación, se muestran algunas de las diferencias en la modalidad PDF entre los modelos multimodales de Gemini:
Modelo | Detalles de la modalidad PDF |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La cantidad máxima de páginas por instrucción es de 300. El tamaño máximo del archivo para un PDF es de 30 MB. |
Gemini 1.0 Pro Vision | La cantidad máxima de páginas por instrucción es 16. El tamaño máximo del archivo para un PDF es de 30 MB. |
Guía de inicio rápido
Usa las siguientes muestras de código para comenzar a usar la API de Gemini. En cada muestra de código, se demuestra que funciona con una modalidad diferente. Algunas muestras de código de este documento funcionan con todos los modelos multimodales de Gemini, y otras solo funcionan con Gemini 1.5 Pro. Cada muestra de código especifica con qué modelos funciona.
Para probar y, luego, iterar las instruccines multimodales, recomendamos usar la consola de Google Cloud. Para enviar instrucciones de manera programática al modelo, puedes usar la API de REST, el SDK de Vertex AI para Python o una de las otras bibliotecas y SDK compatibles que se muestran en las siguientes pestañas.
Imagen única
En las muestras de código, se explica cómo identificar el contenido de una imagen.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el parámetro stream
en generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para una respuesta sin transmisión, quita el parámetro o configúralo como False
.
Código de muestra
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Java de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de IA generativa para usar el SDK de Node.js. Si deseas obtener más información, consulta la documentación de referencia del SDK de Node.js para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Para una respuesta sin transmisión, usa el método generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Código de muestra
REST
Puedes usar REST para probar un mensaje de texto mediante la API de Vertex AI para enviar una solicitud POST al extremo del modelo del publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- GENERATE_RESPONSE_METHOD: El tipo de respuesta que quieres que genere el modelo.
Elige un método que genere cómo quieres que se muestre la respuesta del modelo:
streamGenerateContent
: La respuesta se transmite a medida que se genera para reducir la percepción de latencia para un público humano.generateContent
: La respuesta se muestra después de que se genera por completo.
- LOCATION: La región para procesar la solicitud. Las opciones disponibles incluyen las siguientes:
Haz clic para expandir las regiones disponibles.
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: El ID del proyecto.
- MODEL_ID: el ID del modelo multimodal
que deseas usar. Las opciones son las siguientes:
gemini-1.0-pro-vision
- ROLE:
El rol en una conversación asociada con el contenido. Especificar un rol es obligatorio incluso en
casos de uso de un solo turno.
Los valores aceptables son los siguientes:
USER
: especifica el contenido que envías.
- TEXT: Las instrucciones de texto que se incluirán en el mensaje.
- B64_BASE: La codificación en base64 de la imagen, PDF o el video que se incluirá intercalada en el mensaje. Cuando incluyas contenido multimedia intercalado, también debes especificar MIMETYPE.
- FILE_URI: El URI de Cloud Storage de la imagen o el video que se incluirá en el mensaje. El bucket que almacena el archivo debe estar en el mismo proyecto de Google Cloud que envía la solicitud. También debes especificar MIMETYPE.
- MIME_TYPE:
El tipo de medio de la imagen o el video especificados en los campos
data
ofileUri
. 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
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
La categoría de seguridad para la que se configura un umbral. Los valores aceptables son los siguientes:
Haz clic para expandir las categorías de seguridad
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
El umbral para bloquear respuestas que podrían pertenecer a la categoría de seguridad especificada según la probabilidad. Los valores aceptables son los siguientes:
Haz clic para expandir los umbrales de bloqueo
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(predeterminada)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloquea más, mientras queBLOCK_ONLY_HIGH
bloquea menos. - TEMPERATURE:
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican
topP
ytopK
. La temperatura controla el grado de aleatoriedad 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 de0
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.
- TOP_P:
Top-P cambia la manera en la que el modelo selecciona los tokens para el resultado. Los tokens se seleccionan del más (consulta top-K) al menos probable, hasta que la suma de sus probabilidades sea igual al valor de P superior. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor P superior es
0.5
, el modelo elegirá A o B como el siguiente token mediante la temperatura y excluirá a C como candidato.Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias.
- TOP_K:
El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. Un top-K de
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 codiciosa), mientras que un top-K de3
significa que el siguiente token se selecciona de los tres tokens más probables con 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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
Especifica una lista de cadenas que le indica al modelo que deje de generar texto si se encuentra una de las cadenas en la respuesta. Si una cadena aparece varias veces en la respuesta, la respuesta trunca el lugar en que se encontró por primera vez.
Las cadenas distinguen entre mayúsculas y minúsculas.
Por ejemplo, si la siguiente es la respuesta que se muestra cuando no se especificastopSequences
:
public static string reverse(string myString)
Luego, la respuesta que se muestra constopSequences
configurada como["Str", "reverse"]
es la siguiente:
public static string
HTTP method and URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Cuerpo JSON de la solicitud:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Ejemplo del comando curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Consola
Para enviar un mensaje multimodal con la consola de Google Cloud, haz lo siguiente:
- En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.
- En Prompt design (single turn), haz clic en Abrir.
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 aplicantopP
ytopK
. 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 de0
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 token: Usa el control deslizante o el cuadro de texto con el fin de 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.
- Agregar una secuencia de detención: ingresa una secuencia de detención, que es una serie de caracteres (incluidos los espacios) que detiene la generación de respuesta si el modelo la encuentra. La secuencia no se incluye como parte de la respuesta. Puedes agregar hasta cinco secuencias de detención.
- Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:
K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior.
K superior cambia la manera en que el modelo selecciona tokens para la salida. K superior a1
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 a3
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 probable hasta que la suma de sus
probabilidades sea igual al valor de Top-P. Para obtener los resultados menos variables,
establece Top-P como
0
. - Habilitar fundamentos: Si habilitas esta opción, esta opción te brinda respuestas del modelo basadas en hechos. Los fundamentos solo admiten entrada de texto y salida de texto. Para obtener más información, consulta Descripción general de los fundamentos.
- Selecciona Habilitar fundamentación.
- Haz clic en Personalizar.
- Especifica la fuente y la ruta de acceso de los fundamentos.
- Haz clic en Guardar.
- Respuestas de transmisión: Esta opción no está habilitada. La consola de Google Cloud solo admite la transmisión, lo que implica recibir respuestas a las instrucciones a medida que se generan las respuestas.
- Para subir archivos multimedia, como archivos PDF, MP4, WAV y JPG, haz lo siguiente:
- Ingresa tu mensaje de texto en el panel Mensaje. El modelo usa los mensajes anteriores como contexto para las respuestas nuevas.
- Haz clic en Insertar contenido multimedia y selecciona una fuente. Si eliges Google Drive como tu fuente, debes elegir una cuenta y dar consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Para subir varios archivos, repite este paso. Puedes subir varias imágenes que tengan un tamaño de mensaje total de 10 MB. Un solo archivo no puede superar los 7 MB.
- Navega al archivo que deseas subir, haz clic en el archivo y, luego, en Seleccionar. La miniatura del archivo se muestra en el panel Mensaje.
- Haz clic en Enviar y se generará la respuesta.
- Opcional: Para guardar el mensaje en Mis mensajes, haz clic en Guardar.
- Opcional: Para obtener el código de Python o un comando curl para tu mensaje, haz clic en Obtener código.
- Opcional: Para borrar todos los mensajes anteriores, haz clic en Borrar conversación.
Haz clic para expandir las configuraciones avanzadas.
PDF único
Las muestras de código demuestran cómo incluir un PDF en una solicitud de instrucción mediante el SDK de Vertex AI para Python.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el parámetro stream
en generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para una respuesta sin transmisión, quita el parámetro o configúralo como False
.
Código de muestra
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Java de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de IA generativa para usar el SDK de Node.js. Si deseas obtener más información, consulta la documentación de referencia del SDK de Node.js para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Para una respuesta sin transmisión, usa el método generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Código de muestra
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI C#.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Console
Para enviar un mensaje multimodal con la consola de Google Cloud, haz lo siguiente:
- En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.
- En Prompt design (single turn), haz clic en Abrir.
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 aplicantopP
ytopK
. 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 de0
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 token: Usa el control deslizante o el cuadro de texto con el fin de 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.
- Agregar una secuencia de detención: ingresa una secuencia de detención, que es una serie de caracteres (incluidos los espacios) que detiene la generación de respuesta si el modelo la encuentra. La secuencia no se incluye como parte de la respuesta. Puedes agregar hasta cinco secuencias de detención.
- Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:
K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior.
K superior cambia la manera en que el modelo selecciona tokens para la salida. K superior a1
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 a3
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 probable hasta que la suma de sus
probabilidades sea igual al valor de Top-P. Para obtener los resultados menos variables,
establece Top-P como
0
. - Habilitar fundamentos: Si habilitas esta opción, esta opción te brinda respuestas del modelo basadas en hechos. Los fundamentos solo admiten entrada de texto y salida de texto. Para obtener más información, consulta Descripción general de los fundamentos.
- Selecciona Habilitar fundamentación.
- Haz clic en Personalizar.
- Especifica la fuente y la ruta de acceso de los fundamentos.
- Haz clic en Guardar.
- Respuestas de transmisión: Esta opción no está habilitada. La consola de Google Cloud solo admite la transmisión, lo que implica recibir respuestas a las instrucciones a medida que se generan las respuestas.
- Para subir archivos multimedia, como archivos PDF, MP4, WAV y JPG, haz lo siguiente:
- Ingresa tu mensaje de texto en el panel Mensaje. El modelo usa los mensajes anteriores como contexto para las respuestas nuevas.
- Haz clic en Insertar contenido multimedia y selecciona una fuente. Si eliges Google Drive como tu fuente, debes elegir una cuenta y dar consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Para subir varios archivos, repite este paso. Puedes subir varias imágenes que tengan un tamaño de mensaje total de 10 MB. Un solo archivo no puede superar los 7 MB.
- Navega al archivo que deseas subir, haz clic en el archivo y, luego, en Seleccionar. La miniatura del archivo se muestra en el panel Mensaje.
- Haz clic en Enviar y se generará la respuesta.
- Opcional: Para guardar el mensaje en Mis mensajes, haz clic en Guardar.
- Opcional: Para obtener el código de Python o un comando curl para tu mensaje, haz clic en Obtener código.
- Opcional: Para borrar todos los mensajes anteriores, haz clic en Borrar conversación.
Haz clic para expandir las configuraciones avanzadas.
Video único
En las muestras de código, se explica cómo incluir un video en una solicitud de instrucción.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el parámetro stream
en generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para una respuesta sin transmisión, quita el parámetro o configúralo como False
.
Código de muestra
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Java de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de IA generativa para usar el SDK de Node.js. Si deseas obtener más información, consulta la documentación de referencia del SDK de Node.js para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Para una respuesta sin transmisión, usa el método generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Código de muestra
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración de Go en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Vertex para Go de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Para una respuesta sin transmisión, usa el método GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Código de muestra
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI C#.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Puedes usar REST para probar un mensaje de texto mediante la API de Vertex AI para enviar una solicitud POST al extremo del modelo del publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- GENERATE_RESPONSE_METHOD: El tipo de respuesta que quieres que genere el modelo.
Elige un método que genere cómo quieres que se muestre la respuesta del modelo:
streamGenerateContent
: La respuesta se transmite a medida que se genera para reducir la percepción de latencia para un público humano.generateContent
: La respuesta se muestra después de que se genera por completo.
- LOCATION: La región para procesar la solicitud. Las opciones disponibles incluyen las siguientes:
Haz clic para expandir las regiones disponibles.
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: El ID del proyecto.
- MODEL_ID: el ID del modelo multimodal
que deseas usar. Las opciones son las siguientes:
gemini-1.0-pro-vision
- ROLE:
El rol en una conversación asociada con el contenido. Especificar un rol es obligatorio incluso en
casos de uso de un solo turno.
Los valores aceptables son los siguientes:
USER
: especifica el contenido que envías.
- TEXT: Las instrucciones de texto que se incluirán en el mensaje.
- B64_BASE: La codificación en base64 de la imagen, PDF o el video que se incluirá intercalada en el mensaje. Cuando incluyas contenido multimedia intercalado, también debes especificar MIMETYPE.
- FILE_URI: El URI de Cloud Storage de la imagen o el video que se incluirá en el mensaje. El bucket que almacena el archivo debe estar en el mismo proyecto de Google Cloud que envía la solicitud. También debes especificar MIMETYPE.
- MIME_TYPE:
El tipo de medio de la imagen o el video especificados en los campos
data
ofileUri
. 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
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
La categoría de seguridad para la que se configura un umbral. Los valores aceptables son los siguientes:
Haz clic para expandir las categorías de seguridad
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
El umbral para bloquear respuestas que podrían pertenecer a la categoría de seguridad especificada según la probabilidad. Los valores aceptables son los siguientes:
Haz clic para expandir los umbrales de bloqueo
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(predeterminada)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloquea más, mientras queBLOCK_ONLY_HIGH
bloquea menos. - TEMPERATURE:
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican
topP
ytopK
. La temperatura controla el grado de aleatoriedad 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 de0
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.
- TOP_P:
Top-P cambia la manera en la que el modelo selecciona los tokens para el resultado. Los tokens se seleccionan del más (consulta top-K) al menos probable, hasta que la suma de sus probabilidades sea igual al valor de P superior. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor P superior es
0.5
, el modelo elegirá A o B como el siguiente token mediante la temperatura y excluirá a C como candidato.Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias.
- TOP_K:
El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. Un top-K de
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 codiciosa), mientras que un top-K de3
significa que el siguiente token se selecciona de los tres tokens más probables con 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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
Especifica una lista de cadenas que le indica al modelo que deje de generar texto si se encuentra una de las cadenas en la respuesta. Si una cadena aparece varias veces en la respuesta, la respuesta trunca el lugar en que se encontró por primera vez.
Las cadenas distinguen entre mayúsculas y minúsculas.
Por ejemplo, si la siguiente es la respuesta que se muestra cuando no se especificastopSequences
:
public static string reverse(string myString)
Luego, la respuesta que se muestra constopSequences
configurada como["Str", "reverse"]
es la siguiente:
public static string
HTTP method and URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Cuerpo JSON de la solicitud:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Ejemplo del comando curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Consola
Para enviar un mensaje multimodal con la consola de Google Cloud, haz lo siguiente:
- En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.
- En Prompt design (single turn), haz clic en Abrir.
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 aplicantopP
ytopK
. 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 de0
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 token: Usa el control deslizante o el cuadro de texto con el fin de 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.
- Agregar una secuencia de detención: ingresa una secuencia de detención, que es una serie de caracteres (incluidos los espacios) que detiene la generación de respuesta si el modelo la encuentra. La secuencia no se incluye como parte de la respuesta. Puedes agregar hasta cinco secuencias de detención.
- Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:
K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior.
K superior cambia la manera en que el modelo selecciona tokens para la salida. K superior a1
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 a3
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 probable hasta que la suma de sus
probabilidades sea igual al valor de Top-P. Para obtener los resultados menos variables,
establece Top-P como
0
. - Habilitar fundamentos: Si habilitas esta opción, esta opción te brinda respuestas del modelo basadas en hechos. Los fundamentos solo admiten entrada de texto y salida de texto. Para obtener más información, consulta Descripción general de los fundamentos.
- Selecciona Habilitar fundamentación.
- Haz clic en Personalizar.
- Especifica la fuente y la ruta de acceso de los fundamentos.
- Haz clic en Guardar.
- Respuestas de transmisión: Esta opción no está habilitada. La consola de Google Cloud solo admite la transmisión, lo que implica recibir respuestas a las instrucciones a medida que se generan las respuestas.
- Para subir archivos multimedia, como archivos PDF, MP4, WAV y JPG, haz lo siguiente:
- Ingresa tu mensaje de texto en el panel Mensaje. El modelo usa los mensajes anteriores como contexto para las respuestas nuevas.
- Haz clic en Insertar contenido multimedia y selecciona una fuente. Si eliges Google Drive como tu fuente, debes elegir una cuenta y dar consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Para subir varios archivos, repite este paso. Puedes subir varias imágenes que tengan un tamaño de mensaje total de 10 MB. Un solo archivo no puede superar los 7 MB.
- Navega al archivo que deseas subir, haz clic en el archivo y, luego, en Seleccionar. La miniatura del archivo se muestra en el panel Mensaje.
- Haz clic en Enviar y se generará la respuesta.
- Opcional: Para guardar el mensaje en Mis mensajes, haz clic en Guardar.
- Opcional: Para obtener el código de Python o un comando curl para tu mensaje, haz clic en Obtener código.
- Opcional: Para borrar todos los mensajes anteriores, haz clic en Borrar conversación.
Haz clic para expandir las configuraciones avanzadas.
Audio único
En las muestras de código, se explica cómo usar un archivo de audio para resumir un podcast. Esta muestra solo funciona con Gemini 1.5 Pro.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el parámetro stream
en generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para una respuesta sin transmisión, quita el parámetro o configúralo como False
.
Código de muestra
Console
Para enviar un mensaje multimodal con la consola de Google Cloud, haz lo siguiente:
- En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.
- En Prompt design (single turn), haz clic en Abrir.
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 aplicantopP
ytopK
. 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 de0
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 token: Usa el control deslizante o el cuadro de texto con el fin de 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.
- Agregar una secuencia de detención: ingresa una secuencia de detención, que es una serie de caracteres (incluidos los espacios) que detiene la generación de respuesta si el modelo la encuentra. La secuencia no se incluye como parte de la respuesta. Puedes agregar hasta cinco secuencias de detención.
- Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:
K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior.
K superior cambia la manera en que el modelo selecciona tokens para la salida. K superior a1
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 a3
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 probable hasta que la suma de sus
probabilidades sea igual al valor de Top-P. Para obtener los resultados menos variables,
establece Top-P como
0
. - Habilitar fundamentos: Si habilitas esta opción, esta opción te brinda respuestas del modelo basadas en hechos. Los fundamentos solo admiten entrada de texto y salida de texto. Para obtener más información, consulta Descripción general de los fundamentos.
- Selecciona Habilitar fundamentación.
- Haz clic en Personalizar.
- Especifica la fuente y la ruta de acceso de los fundamentos.
- Haz clic en Guardar.
- Respuestas de transmisión: Esta opción no está habilitada. La consola de Google Cloud solo admite la transmisión, lo que implica recibir respuestas a las instrucciones a medida que se generan las respuestas.
- Para subir archivos multimedia, como archivos PDF, MP4, WAV y JPG, haz lo siguiente:
- Ingresa tu mensaje de texto en el panel Mensaje. El modelo usa los mensajes anteriores como contexto para las respuestas nuevas.
- Haz clic en Insertar contenido multimedia y selecciona una fuente. Si eliges Google Drive como tu fuente, debes elegir una cuenta y dar consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Para subir varios archivos, repite este paso. Puedes subir varias imágenes que tengan un tamaño de mensaje total de 10 MB. Un solo archivo no puede superar los 7 MB.
- Navega al archivo que deseas subir, haz clic en el archivo y, luego, en Seleccionar. La miniatura del archivo se muestra en el panel Mensaje.
- Haz clic en Enviar y se generará la respuesta.
- Opcional: Para guardar el mensaje en Mis mensajes, haz clic en Guardar.
- Opcional: Para obtener el código de Python o un comando curl para tu mensaje, haz clic en Obtener código.
- Opcional: Para borrar todos los mensajes anteriores, haz clic en Borrar conversación.
Haz clic para expandir las configuraciones avanzadas.
Muestras avanzadas
Los siguientes ejemplos son más complejos que los ejemplos anteriores.
Varias imágenes
Las muestras de código demuestran cómo incluir varias imágenes en una solicitud de instrucciones.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el parámetro stream
en generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para una respuesta sin transmisión, quita el parámetro o configúralo como False
.
Código de muestra
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Java de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de IA generativa para usar el SDK de Node.js. Si deseas obtener más información, consulta la documentación de referencia del SDK de Node.js para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Para una respuesta sin transmisión, usa el método generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Código de muestra
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración de Go en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Vertex para Go de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Para una respuesta sin transmisión, usa el método GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Código de muestra
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI C#.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Puedes usar REST para probar un mensaje de texto mediante la API de Vertex AI para enviar una solicitud POST al extremo del modelo del publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- GENERATE_RESPONSE_METHOD: El tipo de respuesta que quieres que genere el modelo.
Elige un método que genere cómo quieres que se muestre la respuesta del modelo:
streamGenerateContent
: La respuesta se transmite a medida que se genera para reducir la percepción de latencia para un público humano.generateContent
: La respuesta se muestra después de que se genera por completo.
- LOCATION: La región para procesar la solicitud. Las opciones disponibles incluyen las siguientes:
Haz clic para expandir las regiones disponibles.
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: El ID del proyecto.
- MODEL_ID: el ID del modelo multimodal
que deseas usar. Las opciones son las siguientes:
gemini-1.0-pro-vision
- ROLE:
El rol en una conversación asociada con el contenido. Especificar un rol es obligatorio incluso en
casos de uso de un solo turno.
Los valores aceptables son los siguientes:
USER
: especifica el contenido que envías.
- TEXT: Las instrucciones de texto que se incluirán en el mensaje.
- B64_BASE: La codificación en base64 de la imagen, PDF o el video que se incluirá intercalada en el mensaje. Cuando incluyas contenido multimedia intercalado, también debes especificar MIMETYPE.
- FILE_URI: El URI de Cloud Storage de la imagen o el video que se incluirá en el mensaje. El bucket que almacena el archivo debe estar en el mismo proyecto de Google Cloud que envía la solicitud. También debes especificar MIMETYPE.
- MIME_TYPE:
El tipo de medio de la imagen o el video especificados en los campos
data
ofileUri
. 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
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
La categoría de seguridad para la que se configura un umbral. Los valores aceptables son los siguientes:
Haz clic para expandir las categorías de seguridad
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
El umbral para bloquear respuestas que podrían pertenecer a la categoría de seguridad especificada según la probabilidad. Los valores aceptables son los siguientes:
Haz clic para expandir los umbrales de bloqueo
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(predeterminada)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloquea más, mientras queBLOCK_ONLY_HIGH
bloquea menos. - TEMPERATURE:
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican
topP
ytopK
. La temperatura controla el grado de aleatoriedad 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 de0
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.
- TOP_P:
Top-P cambia la manera en la que el modelo selecciona los tokens para el resultado. Los tokens se seleccionan del más (consulta top-K) al menos probable, hasta que la suma de sus probabilidades sea igual al valor de P superior. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor P superior es
0.5
, el modelo elegirá A o B como el siguiente token mediante la temperatura y excluirá a C como candidato.Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias.
- TOP_K:
El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. Un top-K de
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 codiciosa), mientras que un top-K de3
significa que el siguiente token se selecciona de los tres tokens más probables con 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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
Especifica una lista de cadenas que le indica al modelo que deje de generar texto si se encuentra una de las cadenas en la respuesta. Si una cadena aparece varias veces en la respuesta, la respuesta trunca el lugar en que se encontró por primera vez.
Las cadenas distinguen entre mayúsculas y minúsculas.
Por ejemplo, si la siguiente es la respuesta que se muestra cuando no se especificastopSequences
:
public static string reverse(string myString)
Luego, la respuesta que se muestra constopSequences
configurada como["Str", "reverse"]
es la siguiente:
public static string
HTTP method and URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Cuerpo JSON de la solicitud:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Ejemplo del comando curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Consola
Para enviar un mensaje multimodal con la consola de Google Cloud, haz lo siguiente:
- En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.
- En Prompt design (single turn), haz clic en Abrir.
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 aplicantopP
ytopK
. 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 de0
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 token: Usa el control deslizante o el cuadro de texto con el fin de 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.
- Agregar una secuencia de detención: ingresa una secuencia de detención, que es una serie de caracteres (incluidos los espacios) que detiene la generación de respuesta si el modelo la encuentra. La secuencia no se incluye como parte de la respuesta. Puedes agregar hasta cinco secuencias de detención.
- Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:
K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior.
K superior cambia la manera en que el modelo selecciona tokens para la salida. K superior a1
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 a3
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 probable hasta que la suma de sus
probabilidades sea igual al valor de Top-P. Para obtener los resultados menos variables,
establece Top-P como
0
. - Habilitar fundamentos: Si habilitas esta opción, esta opción te brinda respuestas del modelo basadas en hechos. Los fundamentos solo admiten entrada de texto y salida de texto. Para obtener más información, consulta Descripción general de los fundamentos.
- Selecciona Habilitar fundamentación.
- Haz clic en Personalizar.
- Especifica la fuente y la ruta de acceso de los fundamentos.
- Haz clic en Guardar.
- Respuestas de transmisión: Esta opción no está habilitada. La consola de Google Cloud solo admite la transmisión, lo que implica recibir respuestas a las instrucciones a medida que se generan las respuestas.
- Para subir archivos multimedia, como archivos PDF, MP4, WAV y JPG, haz lo siguiente:
- Ingresa tu mensaje de texto en el panel Mensaje. El modelo usa los mensajes anteriores como contexto para las respuestas nuevas.
- Haz clic en Insertar contenido multimedia y selecciona una fuente. Si eliges Google Drive como tu fuente, debes elegir una cuenta y dar consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Para subir varios archivos, repite este paso. Puedes subir varias imágenes que tengan un tamaño de mensaje total de 10 MB. Un solo archivo no puede superar los 7 MB.
- Navega al archivo que deseas subir, haz clic en el archivo y, luego, en Seleccionar. La miniatura del archivo se muestra en el panel Mensaje.
- Haz clic en Enviar y se generará la respuesta.
- Opcional: Para guardar el mensaje en Mis mensajes, haz clic en Guardar.
- Opcional: Para obtener el código de Python o un comando curl para tu mensaje, haz clic en Obtener código.
- Opcional: Para borrar todos los mensajes anteriores, haz clic en Borrar conversación.
Haz clic para expandir las configuraciones avanzadas.
Transcripción de audio
En las muestras de código, se explica cómo usar un archivo de audio para transcribir una entrevista. Esta muestra solo funciona con Gemini 1.5 Pro.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración de Go en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Vertex para Go de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Para una respuesta sin transmisión, usa el método GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Código de muestra
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI C#.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Video con audio
En las muestras de código, se explica cómo resumir un archivo de video con audio. En las muestras de código, también se muestran capítulos con marcas de tiempo. Estas muestras solo funcionan con Gemini 1.5 Pro.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el parámetro stream
en generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para una respuesta sin transmisión, quita el parámetro o configúralo como False
.
Código de muestra
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Java de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de IA generativa para usar el SDK de Node.js. Si deseas obtener más información, consulta la documentación de referencia del SDK de Node.js para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Para una respuesta sin transmisión, usa el método generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Código de muestra
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI C#.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Todas las modalidades
En las muestras de código, se explica cómo procesar imágenes, videos, audio y texto al mismo tiempo. Estas muestras funcionan con Gemini 1.5 Pro y Gemini 1.5 Flash.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el parámetro stream
en generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para una respuesta sin transmisión, quita el parámetro o configúralo como False
.
Código de muestra
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java en la guía de inicio rápido de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia del SDK de Java de Vertex AI para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de IA generativa para usar el SDK de Node.js. Si deseas obtener más información, consulta la documentación de referencia del SDK de Node.js para Gemini.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera una respuesta de transmisión o una respuesta sin transmisión. La transmisión implica recibir respuestas a las instrucciones a medida que se generan. Es decir, en cuanto el modelo genere tokens de salida, estos se enviarán. Una respuesta a los mensajes sin transmisión se envía solo después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Para una respuesta sin transmisión, usa el método generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Código de muestra
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI C#.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Establece parámetros de modelo
Los siguientes parámetros de modelo se pueden establecer en modelos multimodales:
Top-P
P superior cambia la manera en la que el modelo selecciona tokens para la salida. Los tokens se seleccionan desde el más alto (consulta K superior) hasta el menos probable, hasta que la suma de sus probabilidades sea igual al valor de P superior. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor P superior es 0.5
, el modelo elegirá A o B como el siguiente token mediante la temperatura y excluirá a C como candidato.
Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias.
Top-K
El parámetro K superior 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.
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.
Valores de parámetros válidos
Parámetro | Gemini 1.0 Pro Vision | Gemini 1.5 Pro | Gemini 1.5 Flash |
---|---|---|---|
Top-K | 1 - 40 (predeterminado 32) | No compatible | No compatible |
Top-P | 0 - 1.0 (predeterminado 1.0) | 0 - 1.0 (predeterminado 0.95) | 0 - 1.0 (predeterminado 0.95) |
Temperatura | 0 - 1.0 (predeterminado 0.4) | 0 - 2.0 (predeterminado 1.0) | 0 - 2.0 (predeterminado 1.0) |
Requisitos para el contenido multimedia
Cuando uses un archivo multimedia en las solicitudes de instrucciones, asegúrate de que cumpla con los siguientes requisitos:
Requisitos de imagen
Los modelos multimodales de Gemini admiten los siguientes tipos de MIME de imagen:
Tipo MIME de imagen | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PNG - image/png |
|||
JPEG - image/jpeg |
No hay un límite específico para la cantidad de píxeles en una imagen. Sin embargo, las imágenes más grandes se reducen y se rellenan para adaptarse a una resolución máxima de 3,072 x 3,072, a la vez que conservan su relación de aspecto original.
En el caso de Gemini 1.0 Pro Vision, cada imagen representa 258 tokens.
Para Gemini 1.5 Flash y Gemini 1.5 Pro:
- Si ambas dimensiones de la relación de aspecto de una imagen son menores o iguales que 384, se usan 258 tokens.
- Si una dimensión de la relación de aspecto de una imagen es superior a 384, la imagen se recorta en mosaicos. Cada tamaño de mosaico se establece de forma predeterminada en la dimensión más pequeña (ancho o altura) dividida por 1.5. Si es necesario, cada mosaico se ajusta para que no sea menor que 256 ni mayor que 768. Cada mosaico se cambia de tamaño a 768 x 768 y usa 258 tokens.
La cantidad máxima de imágenes que pueden aparecer en una solicitud de instrucciones es la siguiente:
- 16 para Gemini 1.0 Pro Vision
- 3,000 para Gemini 1.5 Flash y Gemini 1.5 Pro
Requisitos de audio
Gemini 1.5 Flash y Gemini 1.5 Pro admiten los siguientes tipos de MIME de audio. Gemini 1.0 Pro Vision no es compatible con el audio.
Tipo de MIME de audio | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
AAC - audio/aac |
|||
FLAC - audio/flac |
|||
MP3 - audio/mp3 |
|||
MPA - audio/m4a |
|||
MPEG - audio/mpeg |
|||
MPGA - audio/mpga |
|||
MP4 - audio/mp4 |
|||
OPUS - audio/opus |
|||
PCM - audio/pcm |
|||
WAV - audio/wav |
|||
WEBM - audio/webm |
Requisitos de video
Los videos se muestrean a 1 fps. Cada marco de video representa 258 tokens.
En el caso de Gemini 1.5 Flash y Gemini 1.5 Pro, la pista de audio está codificada con fotogramas de video. La pista de audio también se desglosa en enlaces troncales de 1 segundo, cada uno de los cuales tiene 32 tokens. El fotograma del video y los tokens de audio se intercalan junto con sus marcas de tiempo. Las marcas de tiempo se representan como 7 tokens.
Los modelos multimodales de Gemini admiten los siguientes tipos de MIME de video:
Tipo de MIME de video | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
FLV - video/x-flv |
|||
MOV - video/mov |
|||
MPEG - video/mpeg |
|||
MPEGPS - video/mpegps |
|||
MPG - video/mpg |
|||
MP4 - video/mp4 |
|||
WEBM - video/webm |
|||
WMV - video/wmv |
|||
3GPP - video/3gpp |
Requisitos de PDF
El tipo de MIME requerido para un PDF es application/pdf
.
prácticas recomendadas
En esta sección, se incluyen prácticas recomendadas para diferentes modalidades.
Prácticas recomendadas para las imágenes
Cuando uses imágenes, usa la siguiente información y prácticas recomendadas para obtener los mejores resultados.
- Usa instrucciones con una sola imagen para producir mejores resultados que las instrucciones con varias imágenes cuando desees detectar texto en una imagen.
- Si la instrucción contiene una sola imagen, colócala antes de la instrucción de texto.
Si hay varias imágenes en el mensaje y quieres consultarlas más tarde en el mensaje 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
oimage 1
image 2
image 3
para tu índice. El siguiente es un ejemplo del uso de imágenes indexadas en un mensaje:image 1 <piano_recital.jpeg> image 2 <family_dinner.jpeg> image 3 <coffee_shop.jpeg> Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3.
Las imágenes con mayor resolución 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.
Prácticas recomendadas para videos
Cuando uses videos, usa la siguiente información y prácticas recomendadas para obtener los mejores resultados:
- Usa no más de un video por instrucción.
- Si la instrucción contiene un solo video, colócalo antes de la instrucción de texto.
- Si usas Gemini 1.0 Pro Vision, el modelo procesa los videos como marcos de imagen no contiguos del video. No se incluye el audio. Si notas que al modelo le falta contenido del video, intenta acortarlo para que el modelo capture una mayor parte del contenido del video.
- Si usas Gemini 1.0 Pro Vision, solo se procesa la información de los primeros dos minutos.
- Si usas Gemini 1.0 Pro Vision, no se analiza la información de audio ni los metadatos de marca de tiempo. Debido a esto, es posible que el modelo no funcione bien en casos de uso que requieran entrada de audio, como audio de subtítulos, o información relacionada con el tiempo, como la velocidad o el ritmo.
- Cuando se necesite la localización de marca de tiempo en un video con audio, pídele al modelo que genere marcas de tiempo en el formato
MM:SS
, en el que los dos primeros dígitos representan minutos y los dos últimos dígitos representan segundos. Usa el mismo formato para las preguntas que se hacen sobre una marca de tiempo.
Prácticas recomendadas para PDF
Cuando uses archivos PDF, usa la siguiente información y prácticas recomendadas para obtener los mejores resultados:
- Los PDFs se tratan como imágenes, por lo que una sola página de un PDF se considera una sola imagen.
- La cantidad de páginas admitidas se limita a la cantidad de imágenes que admite un modelo. Para Gemini 1.0 Pro Vision, el límite es de 16. Para Gemini 1.5 Pro y Gemini 1.5 Flash, el límite es de 300. Si tienes un documento largo, considera dividirlo en varios archivos PDF para procesarlo.
- Cuando se usan archivos PDF como entrada, el costo sigue los precios de las imágenes de Gemini. Por ejemplo, si incluyes un PDF de dos páginas en una llamada a la API de Gemini, se te cobrará una tarifa de entrada por procesar dos imágenes.
- Si tu instrucción contiene un solo PDF, colócalo antes de la instrucción de texto.
- Usa archivos PDF creados con texto procesado como texto en lugar de usar texto en imágenes analizadas. Este formato garantiza que el texto sea legible para las máquinas, de modo que sea más fácil para el modelo editar, buscar y manipular en comparación con los PDFs de las imágenes escaneadas. Esta práctica proporciona resultados óptimos cuando se trabaja con documentos con mucho texto, como los contratos.
Para obtener más sugerencias de mensajes multimodales, consulta Diseña mensajes multimodales.
Limitaciones multimodales
Si bien los modelos multimodales de Gemini son potentes en muchos casos de usuarios multimodales, es importante comprender las limitaciones de los modelos:
- Razonamiento espacial: Los modelos no son precisos para ubicar texto u objetos en imágenes y PDF. Solo pueden mostrar los recuentos aproximados de objetos.
- Usos médicos: los modelos no son adecuados para interpretar imágenes médicas (por ejemplo, radiografías y TC) ni proporcionar asesoramiento médico.
- Reconocimiento de personas: Los modelos no están diseñados para usarse para identificar a personas que no son celebridades en imágenes.
- Moderación de contenido: Los modelos se niegan a proporcionar respuestas en las imágenes o los videos que infringen nuestras políticas de seguridad.
- Exactitud: Los modelos pueden alucinar o cometer errores cuando interpretan imágenes de baja calidad, rotadas o con muy baja resolución. Los modelos también pueden tener alucinaciones cuando se interpreta texto escrito a mano en imágenes o documentos PDF.
- Reconocimiento de sonido sin voz: los modelos que admiten audio pueden cometer errores que reconozcan un sonido que no es una voz.
- Movimiento de alta velocidad: Debido a la tasa de muestreo fija de 1 fotograma por segundo (fps), los modelos pueden cometer errores para comprender el movimiento de alta velocidad en videos.
- Marcas de tiempo de solo audio: Los modelos que admiten audio no pueden generar marcas de tiempo con precisión para solicitudes con archivos de audio. Esto incluye marcas de tiempo de segmentación y localización temporal. Las marcas de tiempo se pueden generar con precisión para entradas que incluyen un video que contiene audio.
- Puntuación de transcripción: Es posible que las transcripciones que muestra Gemini 1.5 Flash no incluyan la puntuación.
¿Qué sigue?
- Comienza a compilar con modelos multimodales de Gemini. Los clientes nuevos obtienen $300 en créditos gratuitos de Google Cloud para explorar lo que pueden hacer con Gemini.
- Obtén más información sobre cómo diseñar instrucciones multimodales.
- Aprende a enviar solicitudes de mensaje de chat.
- Obtén información sobre las prácticas recomendadas de IA responsable y los filtros de seguridad de Vertex AI.