Usa generateContent
o streamGenerateContent
para generar contenido con Gemini.
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.
Crea una cuenta de Google Cloud para comenzar
Para comenzar a usar la API de Gemini en Vertex AI, crea una Google Cloud cuenta.
Después de crear tu cuenta, usa este documento para revisar el cuerpo de la solicitud, los parámetros del modelo, el cuerpo de la respuesta y algunas solicitudes de muestra del modelo de Gemini.
Cuando tengas todo listo, consulta la guía de inicio rápido de la API de Gemini en Vertex AI para aprender a enviar una solicitud a la API de Gemini en Vertex AI con un SDK de lenguaje de programación o la API de REST.
Modelos compatibles
Todos los modelos de Gemini admiten la generación de contenido.
Lista de parámetros
Consulta ejemplos para obtener detalles 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, "thinkingConfig": { "thinkingBudget": integer } }, "labels": { string: string } }
El cuerpo de la solicitud contiene datos con los siguientes parámetros:
Parámetros | |
---|---|
| Opcional:
Nombre del contenido almacenado en caché que se usa como contexto para entregar la predicción. Formato:
|
|
Obligatorio: El contenido de la conversación actual con el modelo. Para consultas de un solo turno, esta es una instancia única. Para las consultas de varios turnos, este es un campo repetido que contiene el historial de conversaciones y la solicitud más reciente. |
|
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. Un fragmento de código que permite que el sistema interactúe con sistemas externos para realizar una acción, o un conjunto de acciones, fuera del conocimiento y del alcance del modelo. Consulta Llamadas a funciones. |
|
Opcional. Consulta Llamadas a funciones. |
|
Opcional: Configuración por solicitud para bloquear contenido no seguro. Se aplicó de manera forzosa en |
|
Opcional: Los ajustes de configuración de generación. |
|
Opcional: Son metadatos que puedes agregar a la llamada a la API en formato de pares clave-valor. |
contents
El tipo de datos estructurados base que incluye 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 dentro
de un mensaje.
Parámetros | |
---|---|
|
La identidad de la entidad que crea el mensaje. Se admiten los siguientes valores:
El valor |
|
Una lista de partes ordenadas que conforman un solo mensaje. Es posible que las diferentes partes tengan distintos tipos de MIME de IANA. Para límites sobre las entradas, como el número máximo de tokens o de imágenes, consulta las especificaciones del modelo en la página Modelos de Google. Para calcular la cantidad de tokens en tu solicitud, consulta Obtén el recuento de tokens. |
parts
Un tipo de datos que contiene contenido multimedia que forma parte de un mensaje Content
de varias partes.
Parámetros | |
---|---|
|
Opcional: Un mensaje de texto o un fragmento de código. |
|
Opcional: Datos intercalados en bytes sin procesar. Para |
|
Opcional: Datos almacenados en un archivo. |
|
Opcional: Contiene una cadena que representa el campo Consulta Llamadas a funciones. |
|
Opcional: La salida del resultado de una Consulta Llamadas a funciones. |
|
Opcional: Para la entrada de video, el desplazamiento inicial y final del video en formato de Duración y la velocidad de fotogramas del video . Por ejemplo, para especificar un clip de 10 segundos a partir de la 1:00 con una velocidad de fotogramas de 10 fotogramas por segundo, configura lo siguiente:
Los metadatos solo se deben especificar mientras los datos de video se presentan
en |
blob
BLOB de contenido. Si es posible, envíalo como texto en lugar de bytes sin procesar.
Parámetros | |
---|---|
|
data o fileUri . Los valores aceptables son los siguientes:
Haz clic para expandir los tipos de MIME.
En el caso de Los archivos de texto deben estar codificados en UTF-8. El contenido del archivo de texto se contabiliza para el límite de tokens. No hay límite en la resolución de la imagen. |
|
La codificación en base64 de la imagen, PDF o el video que se incluirá intercalada en el mensaje. Si incluyes contenido multimedia intercalado, también debes especificar el tipo
de medio ( Límite de tamaño: 20 MB |
FileData
Datos de URI o URL web.
Parámetros | |
---|---|
|
Tipo de MIME de IANA de los datos. |
|
Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:
Cuando especifiques un |
functionCall
Un functionCall
predicho que muestra 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 | |
---|---|
|
El nombre de la función a la que se llamará. |
|
Los parámetros y valores de la función en formato de objeto JSON Consulta Llamadas a funciones para obtener detalles sobre los parámetros. |
functionResponse
El resultado de una FunctionCall
que contiene una cadena que representa la FunctionDeclaration.name
. También contiene un objeto JSON estructurado con el resultado de la función (y lo usa como contexto del modelo). Esto debería contener el resultado de un FunctionCall
basado en la predicción del modelo.
Parámetros | |
---|---|
|
El nombre de la función a la que se llamará. |
|
La respuesta de la función en formato de objeto JSON. |
videoMetadata
Metadatos que describen el contenido del video de entrada.
Parámetros | |
---|---|
|
Opcional: El desplazamiento inicial del video. |
|
Opcional: El desplazamiento final del video. |
|
Opcional:
Es la velocidad de fotogramas del video que se envía al modelo. El valor predeterminado es |
safetySetting
Configuración de seguridad.
Parámetros | |
---|---|
|
Opcional:
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
|
|
Opcional: El umbral para bloquear respuestas que podrían pertenecer a la categoría de seguridad especificada según la probabilidad.
|
|
Opcional: Especifica si se utiliza el umbral para la puntuación de probabilidad o gravedad. Si no se especifica, el umbral se utiliza para la puntuación de probabilidad. |
harmCategory
Categorías de daño que bloquean contenido.
Parámetros | |
---|---|
|
No se especifica la categoría de daño. |
|
La categoría de daño es la incitación al odio o a la violencia. |
|
La categoría de daño es el contenido peligroso. |
|
La categoría de daño es el hostigamiento. |
|
La categoría de daño es el contenido sexual explícito. |
harmBlockThreshold
Niveles de umbral de probabilidad usados para bloquear una respuesta.
Parámetros | |
---|---|
|
Umbral de bloqueo de daño no especificado. |
|
Bloquea el umbral bajo y superior (es decir, bloquea más). |
|
Bloquea el umbral medio y superior. |
|
Bloquea solo el umbral alto (es decir, bloquea menos). |
|
No bloquear. |
|
Desactiva la seguridad si todas las categorías están desactivadas. |
harmBlockMethod
Un umbral de probabilidad que bloquea una respuesta según una combinación de probabilidad y gravedad.
Parámetros | |
---|---|
|
El método de bloqueo de daño no se especifica. |
|
El método de bloqueo de daño usa puntuaciones de probabilidad y gravedad. |
|
El método de bloqueo de daño usa la puntuación de probabilidad. |
generationConfig
Los ajustes de configuración usados cuando se genera el mensaje.
Parámetros | |
---|---|
|
Opcional:
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican Si el modelo muestra una respuesta demasiado genérica, demasiado corta o el modelo proporciona una respuesta de resguardo, intenta 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úcleos. Top-P cambia la manera en la que el modelo selecciona los tokens para el resultado. Los tokens se eligen del más probable (consulta Top-K) al menos probable, hasta que la suma de sus probabilidades sea igual al valor de Top-P. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1 y el valor Top-P es Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias.
|
|
Opcional: La cantidad de variaciones de respuesta que se mostrarán. Por cada solicitud, se te cobra por los tokens de salida de todos los candidatos, pero solo se te cobra una vez por los tokens de entrada. Especificar varios candidatos es una función de vista previa que funciona con
|
|
Opcional: int 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. Para obtener más información, consulta Parámetros de generación de contenido. |
|
Opcional:
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.
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 para |
|
Opcional: Los valores positivos penalizan los tokens que aparecen repetidamente en el texto generado, lo que disminuye la probabilidad de repetir contenido. Este valor para |
|
Opcional: Es el tipo de MIME de la respuesta de salida del texto candidato generado. Se admiten los siguientes tipos de MIME:
Especifica el tipo de respuesta adecuado para evitar comportamientos no deseados. Por ejemplo, si necesitas una respuesta con formato JSON, especifica text/plain no es compatible con responseSchema . |
|
Opcional: esquema Es el esquema que debe seguir el texto candidato generado. Para obtener más información, consulta Controla el resultado generado. Para usar este parámetro, debes especificar un tipo de MIME admitido que no sea |
|
Opcional: Cuando el valor semilla se fija en un valor específico, el modelo hace su mejor esfuerzo para proporcionar la misma respuesta para las solicitudes repetidas. No se garantiza un resultado determinístico. Además, cambiar la configuración del modelo o del parámetro, como la temperatura, puede causar variaciones en la respuesta, incluso cuando usas el mismo valor semilla. Según la configuración predeterminada, se usa un valor semilla aleatorio. |
|
Opcional: Si es verdadero, muestra las probabilidades de registro de los tokens que eligió el modelo en cada paso. El valor predeterminado de este parámetro es |
|
Opcional:
Devuelve las probabilidades de registro de los tokens candidatos principales en cada paso de generación. El token elegido por el modelo podría no ser el mismo que el token candidato principal en cada paso. Especifica la cantidad de candidatos que se mostrarán con un valor de número entero en el rango de Debes habilitar |
|
Opcional: Disponible para los siguientes modelos:
Habilita la comprensión de marcas de tiempo para archivos de solo audio. Esta es una función de versión preliminar. |
|
Opcional: Es la configuración del proceso de pensamiento del modelo para los modelos de Gemini 2.5. El objeto
|
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 la respuesta | Descripción |
---|---|
modelVersion |
El modelo y la versión que se usaron para la generación. Por ejemplo:
gemini-2.0-flash-lite-001 . |
text |
El texto generado. |
finishReason |
El motivo por el que el modelo dejó de generar tokens. Si está vacío, el modelo no dejó de generar los tokens. Debido a que la respuesta usa el mensaje para el contexto, no es posible cambiar el comportamiento de cómo el modelo deja de generar tokens.
|
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
|
probability |
Los niveles de probabilidad de daños en el contenido.
|
blocked |
Una marca booleana asociada con un atributo de seguridad que indica si la entrada o salida del modelo se bloqueó. |
startIndex |
Es un número entero que especifica dónde comienza una cita en el content . El startIndex está en bytes y se calcula a partir de la respuesta codificada en UTF-8.
|
endIndex |
Un número entero que especifica dónde termina una cita en content . El endIndex está en bytes y se calcula a partir de la respuesta codificada en UTF-8.
|
url |
Es la URL de una fuente de cita. Los ejemplos de una fuente de URL pueden ser un sitio web de noticias o un repositorio de GitHub. |
title |
Es el título de una fuente de cita. Los ejemplos de títulos de origen pueden ser los de un artículo de noticias o un libro. |
license |
Es la licencia asociada con una cita. |
publicationDate |
La fecha en que se publicó una cita. Sus formatos válidos son YYYY , YYYY-MM y YYYY-MM-DD .
|
avgLogprobs |
Promedio de probabilidad logarítmica del candidato. |
logprobsResult |
Devuelve los tokens candidatos principales (topCandidates ) y los tokens elegidos reales (chosenCandidates ) en cada paso. |
token |
Los modelos de IA generativa dividen los datos de texto en tokens para su procesamiento, que pueden ser caracteres, palabras o frases. |
logProbability |
Un valor de probabilidad de registro que indica la confianza del modelo para un token en particular. |
promptTokenCount |
Cantidad de tokens en la solicitud. |
candidatesTokenCount |
Cantidad de tokens en las respuestas. |
totalTokenCount |
Cantidad 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 de Inference con la biblioteca de OpenAI. Para obtener más información, consulta Cómo llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Go
Cómo usar la instrucción multimodal
Genera una respuesta de texto a partir de una entrada multimodal, como texto y una imagen.
SDK de IA generativa para Python
Python (OpenAI)
Puedes llamar a la API de Inference con la biblioteca de OpenAI. Para obtener más información, consulta Cómo llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Go
Respuesta de texto de transmisión
Genera una respuesta de modelo de transmisión a partir de una entrada de texto.
SDK de IA generativa para Python
Python (OpenAI)
Puedes llamar a la API de Inference con la biblioteca de OpenAI. Para obtener más información, consulta Cómo 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 de modelos y ciclo de vida de Gemini.
¿Qué sigue?
- Obtén más información sobre la API de Gemini en Vertex AI.
- Obtén más información sobre las llamadas a funciones.
- Obtén más información sobre cómo fundamentar las respuestas para los modelos de Gemini.