Usa generateContent
o streamGenerateContent
para generar contenido con Gemini.
La familia de modelos Gemini incluye modelos que funcionan con peticiones multimodales. El término multimodal indica que puedes usar más de una modalidad o tipo de entrada en una petición. Los modelos que no son multimodales solo aceptan peticiones con texto. Las modalidades pueden ser texto, audio, vídeo, etc.
Crea una cuenta de Google Cloud para empezar
Para empezar a usar la API de Gemini en Vertex AI, crea una cuenta Google Cloud .
Después de crear tu cuenta, consulta este documento para ver el cuerpo de la solicitud, los parámetros del modelo, el cuerpo de la respuesta y algunas solicitudes de ejemplo del modelo de Gemini.
Cuando lo tengas todo listo, consulta la guía de inicio rápido de la API de Gemini en Vertex AI para saber cómo enviar una solicitud a la API de Gemini en Vertex AI mediante un SDK de lenguaje de programación o la API REST.
Modelos admitidos
Todos los modelos de Gemini admiten la generación de contenido.
Lista de parámetros
Consulta los ejemplos para obtener más información sobre la implementación.
Cuerpo de la solicitud
{ "cachedContent": string, "contents": [ { "role": string, "parts": [ { // Union field data can be only one of the following: "text": string, "inlineData": { "mimeType": string, "data": string }, "fileData": { "mimeType": string, "fileUri": string }, // End of list of possible types for union field data. "videoMetadata": { "startOffset": { "seconds": integer, "nanos": integer }, "endOffset": { "seconds": integer, "nanos": integer }, "fps": double } } ] } ], "systemInstruction": { "role": string, "parts": [ { "text": string } ] }, "tools": [ { "functionDeclarations": [ { "name": string, "description": string, "parameters": { object (OpenAPI Object Schema) } } ] } ], "safetySettings": [ { "category": enum (HarmCategory), "threshold": enum (HarmBlockThreshold) } ], "generationConfig": { "temperature": number, "topP": number, "topK": number, "candidateCount": integer, "maxOutputTokens": integer, "presencePenalty": float, "frequencyPenalty": float, "stopSequences": [ string ], "responseMimeType": string, "responseSchema": schema, "seed": integer, "responseLogprobs": boolean, "logprobs": integer, "audioTimestamp": boolean }, "labels": { string: string } }
El cuerpo de la solicitud contiene datos con los siguientes parámetros:
Parámetros | |
---|---|
| Opcional:
El nombre del contenido almacenado en caché que se usa como contexto para
proporcionar la predicción. Formato:
|
|
Obligatorio: El contenido de la conversación actual con el modelo. En el caso de las consultas de un solo turno, se trata de una sola instancia. En las consultas multiturno, se trata de un campo repetido que contiene el historial de la conversación y la última solicitud. |
|
Opcional: Disponible para Instrucciones para que el modelo mejore su rendimiento. Por ejemplo, "Responde de la forma más concisa posible" o "No uses términos técnicos en tu respuesta". Las cadenas El campo |
|
Opcional. Fragmento de código que permite al sistema interactuar con sistemas externos para realizar una acción o un conjunto de acciones fuera del conocimiento y del ámbito del modelo. Consulta Llamadas a funciones. |
|
Opcional. Consulta Llamadas a funciones. |
|
Opcional: Ajustes por solicitud para bloquear contenido no seguro. Fecha de implementación: |
|
Opcional: Ajustes de configuración de la generación. |
|
Opcional: Metadatos que puede añadir a la llamada a la API en formato de pares clave-valor. |
contents
Tipo de datos estructurados base que contiene el contenido de varias partes de un mensaje.
Esta clase consta de dos propiedades principales: role
y parts
. La propiedad role
denota la persona que produce el contenido, mientras que la propiedad parts
contiene varios elementos, cada uno de los cuales representa un segmento de datos de un mensaje.
Parámetros | |
---|---|
|
La identidad de la entidad que crea el mensaje. Se admiten los siguientes valores:
El valor |
|
Lista de partes ordenadas que componen un único mensaje. Las distintas partes pueden tener diferentes tipos MIME de IANA. Para consultar los límites de las entradas, como el número máximo de tokens o el número de imágenes, consulta las especificaciones del modelo en la página Modelos de Google. Para calcular el número de tokens de tu solicitud, consulta Obtener el recuento de tokens. |
parts
Tipo de datos que contiene contenido multimedia que forma parte de un mensaje Content
de varias partes.
Parámetros | |
---|---|
|
Opcional: Una petición de texto o un fragmento de código. |
|
Opcional: Datos insertados en bytes sin procesar. En el caso de |
|
Opcional: Datos almacenados en un archivo. |
|
Opcional: Contiene una cadena que representa el campo Consulta Llamadas a funciones. |
|
Opcional: El resultado de una Consulta Llamadas a funciones. |
|
Opcional: En el caso de los vídeos, el desplazamiento de inicio y finalización del vídeo en formato Duración y la frecuencia de imagen del vídeo . Por ejemplo, para especificar un fragmento de 10 segundos que empiece en 1:00 con una velocidad de fotogramas de 10 fotogramas por segundo, defina lo siguiente:
Los metadatos solo deben especificarse mientras se presentan los datos del vídeo en |
blob
Blob de contenido. Si es posible, envíalo como texto en lugar de bytes sin formato.
Parámetros | |
---|---|
|
data o fileUri . Entre los valores aceptados se incluyen los siguientes:
Haz clic para desplegar los tipos de MIME
En Los archivos de texto deben estar codificados en UTF-8. El contenido del archivo de texto se tiene en cuenta para el límite de tokens. No hay límite de resolución de imagen. |
|
La codificación Base64 de la imagen, el PDF o el vídeo que se va a incluir en la petición. Cuando incluyas contenido multimedia insertado, también debes especificar el tipo de contenido multimedia ( Límite de tamaño: 20 MB |
FileData
Datos de URI o URL web.
Parámetros | |
---|---|
|
Tipo MIME de IANA de los datos. |
|
La URI o la URL del archivo que se va a incluir en la petición. Entre los valores aceptables se incluyen los siguientes:
Cuando especifiques un |
functionCall
Un functionCall
predicho devuelto por el modelo que contiene una cadena que representa el functionDeclaration.name
y un objeto JSON estructurado que contiene los parámetros y sus valores.
Parámetros | |
---|---|
|
Nombre de la función a la que se debe llamar. |
|
Los parámetros y valores de la función en formato de objeto JSON. Consulta los detalles de los parámetros en Llamadas a funciones. |
functionResponse
El resultado de un FunctionCall
que contiene una cadena que representa el FunctionDeclaration.name
. También contiene un objeto JSON estructurado con la salida de la función (y lo usa como contexto para el modelo). Debe contener el resultado de una FunctionCall
basada en la predicción del modelo.
Parámetros | |
---|---|
|
Nombre de la función a la que se debe llamar. |
|
La respuesta de la función en formato de objeto JSON. |
videoMetadata
Metadatos que describen el contenido de vídeo de entrada.
Parámetros | |
---|---|
|
Opcional: El desplazamiento inicial del vídeo. |
|
Opcional: El desplazamiento final del vídeo. |
|
Opcional:
La frecuencia de fotogramas del vídeo enviado al modelo. Si no se especifica, se asigna el valor |
safetySetting
Ajustes de seguridad.
Parámetros | |
---|---|
|
Opcional:
La categoría de seguridad para la que se va a configurar un umbral. Entre los valores aceptados se incluyen los siguientes:
Haz clic para desplegar las categorías de seguridad.
|
|
Opcional: Umbral para bloquear las respuestas que podrían pertenecer a la categoría de seguridad especificada en función de la probabilidad.
|
|
Opcional: Especifica si el umbral se usa para la probabilidad o la gravedad. Si no se especifica, el umbral se usa para la puntuación de probabilidad. |
harmCategory
Categorías de daño que bloquean contenido.
Parámetros | |
---|---|
|
La categoría de daño no se ha especificado. |
|
La categoría de contenido dañino es incitación al odio. |
|
La categoría de daño es contenido peligroso. |
|
La categoría de daño es acoso. |
|
La categoría de daño es contenido sexual explícito. |
harmBlockThreshold
Niveles de umbral de probabilidad que se usan para bloquear una respuesta.
Parámetros | |
---|---|
|
Umbral de bloqueo de daños no especificado. |
|
Bloquear el umbral bajo y los valores superiores (es decir, bloquear más contenido). |
|
Bloquea el umbral medio y los superiores. |
|
Bloquear solo el umbral alto (es decir, bloquear menos). |
|
No bloquear nada. |
|
Desactiva la seguridad si todas las categorías están desactivadas |
harmBlockMethod
Umbral de probabilidad que bloquea una respuesta en función de una combinación de probabilidad y gravedad.
Parámetros | |
---|---|
|
No se ha especificado el método de bloqueo de daños. |
|
El método de bloqueo de contenido dañino usa tanto la probabilidad como la gravedad. |
|
El método de bloqueo de daños usa la puntuación de probabilidad. |
generationConfig
Ajustes de configuración que se usan al generar la petición.
Parámetros | |
---|---|
|
Opcional:
La temperatura se usa para el muestreo durante la generación de respuestas, que se produce cuando se aplican Si el modelo devuelve una respuesta demasiado genérica o demasiado corta, o bien una respuesta alternativa, prueba a aumentar la temperatura.
Para obtener más información, consulta Parámetros de generación de contenido. |
|
Opcional: Si se especifica, se usa el muestreo de núcleo. Top-P cambia la forma en que el modelo selecciona los tokens de salida. Los tokens se seleccionan de más a menos probables (consulta el valor K superior) hasta que la suma de sus probabilidades sea igual al valor 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 de top-P es Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias.
|
|
Opcional: Número de variaciones de respuesta que se deben devolver. Por cada solicitud, se te cobrarán los tokens de salida de todos los candidatos, pero solo se te cobrarán una vez los tokens de entrada. Especificar varios candidatos es una función de vista previa que funciona con
|
|
Opcional: int Número máximo de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden aproximadamente a entre 60 y 80 palabras. Especifica un valor inferior para las respuestas más cortas y un valor superior para las respuestas que puedan ser más largas. Para obtener más información, consulta Parámetros de generación de contenido. |
|
Opcional:
Especifica una lista de cadenas que 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, esta se truncará en el punto en el que se encuentre por primera vez.
Las cadenas distinguen entre mayúsculas y minúsculas.
La lista puede tener un máximo de 5 elementos. Para obtener más información, consulta Parámetros de generación de contenido. |
|
Opcional: Penalizaciones positivas. Los valores positivos penalizan los tokens que ya aparecen en el texto generado, lo que aumenta la probabilidad de generar contenido más diverso. El valor máximo de |
|
Opcional: Los valores positivos penalizan los tokens que aparecen repetidamente en el texto generado, lo que reduce la probabilidad de que se repita el contenido. El valor máximo de |
|
Opcional: El tipo MIME de la respuesta de salida del texto candidato generado. Se admiten los siguientes tipos MIME:
Especifica el tipo de respuesta adecuado para evitar comportamientos no deseados. Por ejemplo, si necesitas una respuesta en formato JSON, especifica text/plain no se puede usar con responseSchema . |
|
Opcional: schema El esquema que ha generado el texto candidato debe seguirse. Para obtener más información, consulta Controlar el resultado generado. Para usar este parámetro, debe especificar un tipo MIME admitido que no sea |
|
Opcional: Cuando la semilla se fija en un valor específico, el modelo hace todo lo posible para proporcionar la misma respuesta a las solicitudes repetidas. No se garantiza que la salida sea determinista. Además, si cambias el modelo o los ajustes de los parámetros, como la temperatura, pueden producirse variaciones en la respuesta aunque uses el mismo valor de semilla. De forma predeterminada, se usa un valor de semilla aleatorio. |
|
Opcional: Si es true, devuelve las probabilidades logarítmicas de los tokens que ha elegido el modelo en cada paso. De forma predeterminada, este parámetro tiene el valor |
|
Opcional:
Devuelve las probabilidades logarítmicas de los tokens candidatos principales en cada paso de generación. Es posible que el token elegido por el modelo no sea el mismo que el token candidato principal en cada paso. Especifique el número de candidatos que se van a devolver mediante un valor entero comprendido entre Para usar este parámetro, debe habilitar
|
|
Opcional: Disponible para los siguientes modelos:
Habilita la interpretación de marcas de tiempo en archivos de solo audio. Esta es una función de vista previa. |
Cuerpo de la respuesta
{ "candidates": [ { "content": { "parts": [ { "text": string } ] }, "finishReason": enum (FinishReason), "safetyRatings": [ { "category": enum (HarmCategory), "probability": enum (HarmProbability), "blocked": boolean } ], "citationMetadata": { "citations": [ { "startIndex": integer, "endIndex": integer, "uri": string, "title": string, "license": string, "publicationDate": { "year": integer, "month": integer, "day": integer } } ] }, "avgLogprobs": double, "logprobsResult": { "topCandidates": [ { "candidates": [ { "token": string, "logProbability": float } ] } ], "chosenCandidates": [ { "token": string, "logProbability": float } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer }, "modelVersion": string }
Elemento de respuesta | Descripción |
---|---|
modelVersion |
El modelo y la versión que se han usado para la generación. Por ejemplo:
gemini-2.0-flash-lite-001 . |
text |
El texto generado. |
finishReason |
El motivo por el que el modelo ha dejado de generar tokens. Si está vacío, el modelo
no ha dejado de generar los tokens. Como la respuesta usa la petición para el contexto, no es posible cambiar el comportamiento del modelo para que deje de generar tokens.
|
category |
La categoría de seguridad para la que se va a configurar un umbral. Entre los valores aceptados se incluyen los siguientes:
Haz clic para desplegar las categorías de seguridad.
|
probability |
Los niveles de probabilidad de daño del contenido.
|
blocked |
Un indicador booleano asociado a un atributo de seguridad que indica si se ha bloqueado la entrada o la salida del modelo. |
startIndex |
Número entero que especifica dónde empieza una cita en el content . El valor de startIndex está en bytes y se calcula a partir de la respuesta codificada en UTF-8.
|
endIndex |
Número entero que especifica dónde termina una cita en el content . El valor de endIndex está en bytes y se calcula a partir de la respuesta codificada en UTF-8.
|
url |
URL de la fuente de una cita. Por ejemplo, una fuente de URL puede ser un sitio web de noticias o un repositorio de GitHub. |
title |
El título de una fuente de cita. Por ejemplo, el título de una fuente puede ser el de un artículo de noticias o el de un libro. |
license |
Es la licencia asociada a una cita. |
publicationDate |
Fecha en la que se publicó la cita. Los formatos válidos son YYYY , YYYY-MM y YYYY-MM-DD .
|
avgLogprobs |
Probabilidad logarítmica media del candidato. |
logprobsResult |
Devuelve los tokens candidatos principales (topCandidates ) y los tokens elegidos (chosenCandidates ) en cada paso. |
token |
Los modelos de IA generativa desglosan los datos de texto en tokens para procesarlos, que pueden ser caracteres, palabras o frases. |
logProbability |
Valor de probabilidad logarítmica que indica la confianza del modelo en un token concreto. |
promptTokenCount |
Número de tokens de la solicitud. |
candidatesTokenCount |
Número de tokens de las respuestas. |
totalTokenCount |
Número de tokens en la solicitud y las respuestas. |
Ejemplos
Generación de texto
Genera una respuesta de texto a partir de una entrada de texto.
SDK de IA generativa para Python
Python (OpenAI)
Puedes llamar a la API Inference mediante la biblioteca de OpenAI. Para obtener más información, consulta Llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Go
Usar una petición multimodal
Generar una respuesta de texto a partir de una entrada multimodal, como texto e imagen.
SDK de IA generativa para Python
Python (OpenAI)
Puedes llamar a la API Inference mediante la biblioteca de OpenAI. Para obtener más información, consulta Llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Go
Respuesta de texto en streaming
Genera una respuesta de modelo de streaming a partir de una entrada de texto.
SDK de IA generativa para Python
Python (OpenAI)
Puedes llamar a la API Inference mediante la biblioteca de OpenAI. Para obtener más información, consulta Llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Go
Versiones del modelo
Para usar la versión actualizada automáticamente, especifica el nombre del modelo sin el número de versión final. Por ejemplo, gemini-2.0-flash
en lugar de gemini-2.0-flash-001
.
Para obtener más información, consulta Versiones y ciclo de vida del modelo de Gemini.
Siguientes pasos
- Consulta más información sobre la API de Gemini en Vertex AI.
- Más información sobre las llamadas a funciones
- Consulta más información sobre cómo fundamentar las respuestas de los modelos de Gemini.