Puedes agregar audio a las solicitudes de Gemini para realizar tareas que impliquen comprender el contenido del audio incluido. En esta página, se muestra cómo agregar audio a tus solicitudes a Gemini en Vertex AI mediante la consola de Google Cloud y la API de Vertex AI.
Modelos compatibles
En la siguiente tabla, se enumeran los modelos que admiten la comprensión de audio:
Modelo | Detalles de la modalidad de audio |
---|---|
Gemini 2.0 Flash Ir a la tarjeta de modelo de Gemini 2.0 Flash |
Duración máxima de audio por instrucción: aproximadamente 8.4 horas o hasta 1 millón de tokens. La voz se puede comprender para el resumen, la transcripción y la traducción de audio. |
Gemini 1.5 Flash Ir a la tarjeta de modelo de Gemini 1.5 Flash |
Duración máxima de audio por instrucción: aproximadamente 8.4 horas o hasta 1 millón de tokens. La voz se puede comprender para el resumen, la transcripción y la traducción de audio. |
Gemini 1.5 Pro Ir a la tarjeta de modelo de Gemini 1.5 Pro |
Duración máxima de audio por instrucción: aproximadamente 8.4 horas o hasta 1 millón de tokens. La voz se puede comprender para el resumen, la transcripción y la traducción de audio. |
Para obtener una lista de los idiomas compatibles con los modelos de Gemini, consulta la información del modelo de los Modelos de Google. Para obtener más información sobre cómo diseñar instrucciones multimodales, consulta Diseña instrucciones multimodales. Si buscas una manera de usar Gemini directamente desde tus apps web y para dispositivos móviles, consulta los SDK de Vertex AI in Firebase para Android, Swift, Web y apps de Flutter.
Agrega audio a una solicitud
Puedes agregar archivos de audio a tus solicitudes de Gemini.
Audio único
A continuación, se muestra cómo usar un archivo de audio para resumir un podcast.
Obtén información para instalar o actualizar el SDK de Google Gen AI para Python.
Para obtener más información, consulta la
documentación de referencia de la API del SDK de Gen AI para Python o el
repositorio de GitHub de python-genai
.
Establece variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
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 respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas 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
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 ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
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 ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas 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
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 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 ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas 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
Antes de probar este ejemplo, sigue las instrucciones de configuración de C# en la guía de inicio rápido de Vertex AI. Para obtener más información, consulta la documentación de referencia de C# de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Para una respuesta sin transmisión, usa el método GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Para obtener más información acerca de cómo el servidor puede transmitir respuestas, consulta RPC de transmisión.
Código de muestra
Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
: La región para procesar la solicitud. Ingresa una región compatible. Para obtener la lista completa de regiones admitidas, consulta Ubicaciones disponibles.LOCATION Haz clic para expandir una lista parcial de regiones disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
: El ID del proyecto.PROJECT_ID
: Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:FILE_URI - URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto de Google Cloud que envía la solicitud. Para
gemini-1.5-pro
ygemini-1.5-flash
, el límite de tamaño es de 2 GB. Paragemini-1.0-pro-vision
, el límite de tamaño es de 20 MB. - URL HTTP: La URL del archivo debe ser legible públicamente. Puedes especificar un archivo de video, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, video y documentos no pueden superar los 15 MB.
- URL del video de YouTube: El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la consola de Google Cloud o ser público. Solo se admite una URL de video de YouTube por solicitud.
Cuando especifiques un
fileURI
, también debes especificar el tipo de medio (mimeType
) del archivo. Si los Controles del servicio de VPC están habilitados, no se admite especificar una URL de archivo multimedia parafileURI
.Si no tienes un archivo de audio en Cloud Storage, puedes usar el siguiente archivo disponible de forma pública:
gs://cloud-samples-data/generative-ai/audio/pixel.mp3
con un tipo de MIME deaudio/mp3
. Para escuchar este audio, abre el archivo MP3 de muestra.- URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto de Google Cloud que envía la solicitud. Para
El tipo de medio del archivo especificado en los camposMIME_TYPE 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
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
Las instrucciones de texto que se incluirán en el mensaje. Por ejemplo,TEXT Please provide a summary for the audio. Provide chapter titles, be concise and short, no need to provide chapter summaries. Do not make up any information that is not part of the audio and do not be verbose.
Para enviar tu solicitud, elige una de estas opciones:
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI ", "mimeType": "MIME_TYPE " } }, { "text": "TEXT " } ] } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/gemini-1.5-flash:generateContent"
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI ", "mimeType": "MIME_TYPE " } }, { "text": "TEXT " } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{ "candidates": [ { "content": { "role": "model", "parts": [ { "text": "## Made By Google Podcast - Pixel Feature Drops \n\n**Chapter 1: Transformative Pixel Features**\n\n**Chapter 2: Importance of Feature Drops**\n\n**Chapter 3: January's Feature Drop Highlights**\n\n**Chapter 4: March's Feature Drop Highlights for Pixel Watch**\n\n**Chapter 5: March's Feature Drop Highlights for Pixel Phones**\n\n**Chapter 6: Feature Drop Expansion to Other Devices**\n\n**Chapter 7: Deciding Which Features to Include in Feature Drops**\n\n**Chapter 8: Importance of User Feedback**\n\n**Chapter 9: When to Expect March's Feature Drop**\n\n**Chapter 10: Stand-Out Features from Past Feature Drops** \n" } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE", "probabilityScore": 0.05470151, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.07864238 }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.027742893, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.050051305 }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.08678674, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.06108711 }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.11899801, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.14706452 } ] } ], "usageMetadata": { "promptTokenCount": 18883, "candidatesTokenCount": 150, "totalTokenCount": 19033 } }
- Usa el método
generateContent
para solicitar que la respuesta se muestre después de que se haya generado por completo. Para reducir la percepción de latencia a un público humano, transmite la respuesta a medida que se genera; para ello, usa el métodostreamGenerateContent
. - El ID del modelo multimodal se encuentra al final de la URL antes del método (por ejemplo,
gemini-1.5-flash
ogemini-1.0-pro-vision
). Esta muestra también puede admitir otros modelos.
En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.
Haz clic en Abrir formato libre.
Opcional: Configura el modelo y los parámetros:
- Modelo: Selecciona un modelo.
- Región: selecciona la región que deseas usar.
Temperatura: Usa el control deslizante o el cuadro de texto para ingresar un valor de temperatura.
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican
topP
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 tokens de salida: Usa el control deslizante o el cuadro de texto para ingresar un valor para el límite máximo de salida.
Cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene casi cuatro caracteres. 100 tokens corresponden a casi 60 u 80 palabras.
Especifica un valor más bajo para las respuestas más cortas y un valor más alto para las respuestas potencialmente más largas.
Agrega una secuencia de detención: Opcional. Ingresa una secuencia de detención, que es una serie de caracteres que incluyen espacios. Si el modelo encuentra una secuencia de detención, la generación de respuesta se detiene. La secuencia de detención no se incluye en la respuesta y puedes agregar hasta cinco secuencias de detención.
Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:
Haz clic para expandir las configuraciones avanzadas
K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior. (no es compatible con Gemini 1.5).
El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. K superior 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 hasta que la suma de sus probabilidades sea igual al valor de P superior. Para obtener los resultados menos variables, establece top-P como
0
. - Respuestas máximas: Usa el control deslizante o el cuadro de texto para ingresar un valor para la cantidad de respuestas que se generarán.
- Respuestas de transmisión: Habilita esta opción para imprimir las respuestas a medida que se generan.
- Umbral del filtro de seguridad: Selecciona el umbral de probabilidad de ver respuestas que podrían ser dañinas.
- Habilitar fundamentos: Los fundamentos no son compatibles con las instrucciones multimodales.
Haz clic en Insertar medios y selecciona una fuente para tu archivo.
Selecciona el archivo que quieras subir y haz clic en Abrir.
Ingresa la URL del archivo que quieres usar y haz clic en Insertar.
Selecciona el bucket y, luego, el archivo del bucket que deseas importar y haz clic en Seleccionar.
- Elige una cuenta y da consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Puedes subir varios archivos con un tamaño total de hasta 10 MB. Un solo archivo no puede superar los 7 MB.
- Haz clic en el archivo que quieras agregar.
Haz clic en Seleccionar.
La miniatura del archivo se muestra en el panel Instrucción. También se muestra la cantidad total de tokens. Si los datos de la instrucción superan el límite de tokens, los tokens se truncan y no se incluyen en el procesamiento de tus datos.
Ingresa tu mensaje de texto en el panel Mensaje.
Opcional: Para ver el ID de token a texto y los IDs de token, haz clic en el recuento de tokens en el panel Instrucción.
Haz clic en Enviar.
Opcional: Para guardar la instrucción en Mis instrucciones, haz clic en
Guardar.Opcional: Para obtener el código de Python o un comando curl para tu instrucción, haz clic en
Obtener código.
Transcripción de audio
A continuación, se muestra cómo usar un archivo de audio para transcribir una entrevista. Para habilitar la comprensión de marcas de tiempo para archivos de solo audio, habilita el parámetro audioTimestamp
en GenerationConfig
.
Obtén información para instalar o actualizar el SDK de Google Gen AI para Python.
Para obtener más información, consulta la
documentación de referencia de la API del SDK de Gen AI para Python o el
repositorio de GitHub de python-genai
.
Establece variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
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 respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas 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
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 ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método generateContentStream
.
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
Para una respuesta sin transmisión, usa el método generateContent
.
public GenerateContentResponse generateContent(Content content)
Código de muestra
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 ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas 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
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 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 ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas 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
Antes de probar este ejemplo, sigue las instrucciones de configuración de C# en la guía de inicio rápido de Vertex AI. Para obtener más información, consulta la documentación de referencia de C# de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local.
Respuestas de transmisión y sin transmisión
Puedes elegir si el modelo genera respuestas de transmisión o sin transmisión. Para las respuestas de transmisión, recibirás cada respuesta en cuanto se genere su token de salida. En el caso de las respuestas sin transmisión continua, recibes todas las respuestas después de que se generan todos los tokens de salida.
Para una respuesta de transmisión, usa el método StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Para una respuesta sin transmisión, usa el método GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Para obtener más información acerca de cómo el servidor puede transmitir respuestas, consulta RPC de transmisión.
Código de muestra
Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
: La región para procesar la solicitud. Ingresa una región compatible. Para obtener la lista completa de regiones admitidas, consulta Ubicaciones disponibles.LOCATION Haz clic para expandir una lista parcial de regiones disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
: El ID del proyecto.PROJECT_ID
: Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:FILE_URI - URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto de Google Cloud que envía la solicitud. Para
gemini-1.5-pro
ygemini-1.5-flash
, el límite de tamaño es de 2 GB. Paragemini-1.0-pro-vision
, el límite de tamaño es de 20 MB. - URL HTTP: La URL del archivo debe ser legible públicamente. Puedes especificar un archivo de video, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, video y documentos no pueden superar los 15 MB.
- URL del video de YouTube: El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la consola de Google Cloud o ser público. Solo se admite una URL de video de YouTube por solicitud.
Cuando especifiques un
fileURI
, también debes especificar el tipo de medio (mimeType
) del archivo. Si los Controles del servicio de VPC están habilitados, no se admite especificar una URL de archivo multimedia parafileURI
.Si no tienes un archivo de audio en Cloud Storage, puedes usar el siguiente archivo disponible de forma pública:
gs://cloud-samples-data/generative-ai/audio/pixel.mp3
con un tipo de MIME deaudio/mp3
. Para escuchar este audio, abre el archivo MP3 de muestra.- URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto de Google Cloud que envía la solicitud. Para
El tipo de medio del archivo especificado en los camposMIME_TYPE 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
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
Las instrucciones de texto que se incluirán en el mensaje. Por ejemplo,TEXT Can you transcribe this interview, in the format of timecode, speaker, caption. Use speaker A, speaker B, etc. to identify speakers.
Para enviar tu solicitud, elige una de estas opciones:
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI ", "mimeType": "MIME_TYPE " } }, { "text": "TEXT " } ] }, "generatationConfig": { "audioTimestamp": true } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/gemini-1.5-flash:generateContent"
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI ", "mimeType": "MIME_TYPE " } }, { "text": "TEXT " } ] }, "generatationConfig": { "audioTimestamp": true } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Respuesta
{ "candidates": [ { "content": { "role": "model", "parts": [ { "text": "0:00 Speaker A: Your devices are getting better over time, and so we think about it across the entire portfolio from phones to watch to buds to tablet. We get really excited about how we can tell a joint narrative across everything. 0:18 Speaker B: Welcome to the Made By Google Podcast, where we meet the people who work on the Google products you love. Here's your host, Rasheed. 0:33 Speaker B: Today we're talking to Aisha and DeCarlos. They're both Product Managers for various Pixel devices and work on something that all the Pixel owners love. The Pixel feature drops. This is the Made By Google Podcast. Aisha, which feature on your Pixel phone has been most transformative in your own life? 0:56 Speaker A: So many features. I am a singer, so I actually think recorder transcription has been incredible because before I would record songs I'd just like, freestyle them, record them, type them up. But now with transcription it works so well even deciphering lyrics that are jumbled. I think that's huge. ... Subscribe now wherever you get your podcasts to be the first to listen." } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE", "probabilityScore": 0.043609526, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.06255973 }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.022328783, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.04426588 }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.07107367, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.049405243 }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.10484337, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.13128456 } ] } ], "usageMetadata": { "promptTokenCount": 18871, "candidatesTokenCount": 2921, "totalTokenCount": 21792 } }
- Usa el método
generateContent
para solicitar que la respuesta se muestre después de que se haya generado por completo. Para reducir la percepción de latencia a un público humano, transmite la respuesta a medida que se genera; para ello, usa el métodostreamGenerateContent
. - El ID del modelo multimodal se encuentra al final de la URL antes del método (por ejemplo,
gemini-1.5-flash
ogemini-1.0-pro-vision
). Esta muestra también puede admitir otros modelos.
En la sección Vertex AI de la consola de Google Cloud, ve a la página Vertex AI Studio.
Haz clic en Abrir formato libre.
Opcional: Configura el modelo y los parámetros:
- Modelo: Selecciona un modelo.
- Región: selecciona la región que deseas usar.
Temperatura: Usa el control deslizante o el cuadro de texto para ingresar un valor de temperatura.
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican
topP
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 tokens de salida: Usa el control deslizante o el cuadro de texto para ingresar un valor para el límite máximo de salida.
Cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene casi cuatro caracteres. 100 tokens corresponden a casi 60 u 80 palabras.
Especifica un valor más bajo para las respuestas más cortas y un valor más alto para las respuestas potencialmente más largas.
Agrega una secuencia de detención: Opcional. Ingresa una secuencia de detención, que es una serie de caracteres que incluyen espacios. Si el modelo encuentra una secuencia de detención, la generación de respuesta se detiene. La secuencia de detención no se incluye en la respuesta y puedes agregar hasta cinco secuencias de detención.
Opcional: Para configurar parámetros avanzados, haz clic en Avanzada y establece la configuración de la siguiente manera:
Haz clic para expandir las configuraciones avanzadas
K superior: Usa el control deslizante o el cuadro de texto con el fin de ingresar un valor para K superior. (no es compatible con Gemini 1.5).
El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. K superior 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 hasta que la suma de sus probabilidades sea igual al valor de P superior. Para obtener los resultados menos variables, establece top-P como
0
. - Respuestas máximas: Usa el control deslizante o el cuadro de texto para ingresar un valor para la cantidad de respuestas que se generarán.
- Respuestas de transmisión: Habilita esta opción para imprimir las respuestas a medida que se generan.
- Umbral del filtro de seguridad: Selecciona el umbral de probabilidad de ver respuestas que podrían ser dañinas.
- Habilitar fundamentos: Los fundamentos no son compatibles con las instrucciones multimodales.
Haz clic en Insertar medios y selecciona una fuente para tu archivo.
Selecciona el archivo que quieras subir y haz clic en Abrir.
Ingresa la URL del archivo que quieres usar y haz clic en Insertar.
Selecciona el bucket y, luego, el archivo del bucket que deseas importar y haz clic en Seleccionar.
- Elige una cuenta y da consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Puedes subir varios archivos con un tamaño total de hasta 10 MB. Un solo archivo no puede superar los 7 MB.
- Haz clic en el archivo que quieras agregar.
Haz clic en Seleccionar.
La miniatura del archivo se muestra en el panel Instrucción. También se muestra la cantidad total de tokens. Si los datos de la instrucción superan el límite de tokens, los tokens se truncan y no se incluyen en el procesamiento de tus datos.
Ingresa tu mensaje de texto en el panel Mensaje.
Opcional: Para ver el ID de token a texto y los IDs de token, haz clic en el recuento de tokens en el panel Instrucción.
Haz clic en Enviar.
Opcional: Para guardar la instrucción en Mis instrucciones, haz clic en
Guardar.Opcional: Para obtener el código de Python o un comando curl para tu instrucción, haz clic en
Obtener código.
Establece parámetros de modelo opcionales
Cada modelo tiene un conjunto de parámetros opcionales que puedes configurar. Para obtener más información, consulta Parámetros de generación de contenido.
Requisitos de audio
Los modelos multimodales de Gemini admiten los siguientes tipos de MIME de audio:
Tipo de MIME de audio | Gemini 2.0 Flash | Gemini 1.5 Flash | Gemini 1.5 Pro |
---|---|---|---|
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 |
Puedes incluir un máximo de
Limitaciones
Si bien los modelos multimodales de Gemini son potentes en muchos casos de usuarios multimodales, es importante comprender las limitaciones de los modelos:
- Reconocimiento de sonido sin voz: los modelos que admiten audio pueden cometer errores que reconozcan un sonido que no es una voz.
- Marcas de tiempo de solo audio: Para generar marcas de tiempo con exactitud para archivos de solo audio, debes configurar el parámetro
audio_timestamp
engeneration_config
. - Puntuación de transcripción: (si usas Flash de Gemini 1.5), los modelos pueden mostrar transcripciones que no incluyen puntuación.
¿Qué sigue?
- Comienza a compilar con modelos multimodales de Gemini. Los clientes nuevos obtienen $300 en Google Cloud créditos gratuitos para explorar lo que pueden hacer con Gemini.
- 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.