La API de Gemini admite la generación de contenido con imágenes, audio, código, herramientas y mucho más. Para obtener detalles sobre cada una de estas funciones, sigue leyendo y consulta el código de muestra enfocado en las tareas o lee las guías completas.
- Generación de texto
- Vision
- Audio
- Contexto largo
- Ejecución de código
- Modo JSON
- Llamada a función
- Instrucciones del sistema
Método: models.generateContent
- Extremo
- Parámetros de ruta de acceso
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- Permisos de autorización
- Ejemplo de solicitud
Genera una respuesta del modelo según una GenerateContentRequest
de entrada. Consulta la guía de generación de texto para obtener información de uso detallada. Las capacidades de entrada difieren entre los modelos, incluidos los ajustados. Consulta la guía del modelo y la guía de ajuste para obtener más detalles.
Extremo
publicación
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent
Parámetros de ruta
model
string
Obligatorio. Es el nombre de Model
que se usará para generar la finalización.
Formato: name=models/{model}
. Toma la forma models/{model}
.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
contents[]
object (Content
)
Obligatorio. El contenido de la conversación actual con el modelo.
Para consultas de un solo turno, esta es una instancia única. Para consultas de varios turnos, como chat, es un campo repetido que contiene el historial de la conversación y la última solicitud.
tools[]
object (Tool
)
Opcional. Una lista de Tools
que Model
puede usar para generar la siguiente respuesta.
Un Tool
es 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 el alcance de Model
. Los elementos Tool
admitidos son Function
y codeExecution
. Consulta las guías Llamada a función y Ejecución de código para obtener más información.
toolConfig
object (ToolConfig
)
Opcional. Configuración de herramientas para cualquier Tool
especificado en la solicitud. Consulta la guía de llamada a funciones para ver un ejemplo de uso.
safetySettings[]
object (SafetySetting
)
Opcional. Una lista de instancias de SafetySetting
únicas para bloquear contenido no seguro.
Esto se aplicará de manera forzosa en GenerateContentRequest.contents
y GenerateContentResponse.candidates
. No debe haber más de un parámetro de configuración para cada tipo de SafetyCategory
. La API bloqueará cualquier contenido y respuesta que no cumpla con los umbrales establecidos por esta configuración. Esta lista anula la configuración predeterminada para cada SafetyCategory
especificado en SafetySettings. Si no hay un SafetySetting
para un SafetyCategory
determinado proporcionado en la lista, la API usará la configuración de seguridad predeterminada para esa categoría. Se admiten las categorías de daños HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT. Consulta la guía para obtener información detallada sobre la configuración de seguridad disponible. Además, consulta la Guía de seguridad para aprender a incorporar consideraciones de seguridad en tus aplicaciones de IA.
systemInstruction
object (Content
)
Opcional. El desarrollador establece las instrucciones del sistema. Actualmente, es solo texto.
generationConfig
object (GenerationConfig
)
Opcional. Opciones de configuración para la generación y la salida de modelos.
cachedContent
string
Opcional. Es el nombre del contenido almacenado en caché para usar como contexto y entregar la predicción. Formato: cachedContents/{cachedContent}
Ejemplo de solicitud
Texto
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Imagen
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Audio
Python
Node.js
Una caracola
Video
Python
Node.js
Go
Una caracola
Python
Una caracola
Chat
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Caché
Python
Node.js
Modelo ajustado
Python
Modo JSON
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Ejecución de código
Python
Kotlin
Java
Llamadas a función
Python
Node.js
Una caracola
Kotlin
Swift
Dart
Java
Configuración de generación
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Configuración de seguridad
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Instrucción del sistema
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Cuerpo de la respuesta
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de GenerateContentResponse
.
Método: models.streamGenerateContent
- Extremo
- Parámetros de ruta de acceso
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- Permisos de autorización
- Ejemplo de solicitud
Genera una respuesta transmitida del modelo según un GenerateContentRequest
de entrada.
Extremo
publicación
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:streamGenerateContent
Parámetros de ruta
model
string
Obligatorio. Es el nombre de Model
que se usará para generar la finalización.
Formato: name=models/{model}
. Toma la forma models/{model}
.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
contents[]
object (Content
)
Obligatorio. El contenido de la conversación actual con el modelo.
Para consultas de un solo turno, esta es una instancia única. Para consultas de varios turnos, como chat, es un campo repetido que contiene el historial de la conversación y la última solicitud.
tools[]
object (Tool
)
Opcional. Una lista de Tools
que Model
puede usar para generar la siguiente respuesta.
Un Tool
es 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 el alcance de Model
. Los elementos Tool
admitidos son Function
y codeExecution
. Consulta las guías Llamada a función y Ejecución de código para obtener más información.
toolConfig
object (ToolConfig
)
Opcional. Configuración de herramientas para cualquier Tool
especificado en la solicitud. Consulta la guía de llamada a funciones para ver un ejemplo de uso.
safetySettings[]
object (SafetySetting
)
Opcional. Una lista de instancias de SafetySetting
únicas para bloquear contenido no seguro.
Esto se aplicará de manera forzosa en GenerateContentRequest.contents
y GenerateContentResponse.candidates
. No debe haber más de un parámetro de configuración para cada tipo de SafetyCategory
. La API bloqueará cualquier contenido y respuesta que no cumpla con los umbrales establecidos por esta configuración. Esta lista anula la configuración predeterminada para cada SafetyCategory
especificado en SafetySettings. Si no hay un SafetySetting
para un SafetyCategory
determinado proporcionado en la lista, la API usará la configuración de seguridad predeterminada para esa categoría. Se admiten las categorías de daños HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT. Consulta la guía para obtener información detallada sobre la configuración de seguridad disponible. Además, consulta la Guía de seguridad para aprender a incorporar consideraciones de seguridad en tus aplicaciones de IA.
systemInstruction
object (Content
)
Opcional. El desarrollador establece las instrucciones del sistema. Actualmente, es solo texto.
generationConfig
object (GenerationConfig
)
Opcional. Opciones de configuración para la generación y la salida de modelos.
cachedContent
string
Opcional. Es el nombre del contenido almacenado en caché para usar como contexto y entregar la predicción. Formato: cachedContents/{cachedContent}
Ejemplo de solicitud
Texto
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Imagen
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Audio
Python
Una caracola
Video
Python
Node.js
Go
Una caracola
Python
Una caracola
Chat
Python
Node.js
Go
Una caracola
Kotlin
Swift
Dart
Java
Cuerpo de la respuesta
Si se ejecuta correctamente, el cuerpo de la respuesta contendrá un flujo de instancias de GenerateContentResponse
.
GenerateContentResponse
Respuesta del modelo que respalda las respuestas de varios candidatos.
Se informan las clasificaciones de seguridad y el filtrado de contenido para la instrucción en GenerateContentResponse.prompt_feedback
y para cada candidato en finishReason
y en safetyRatings
. La API: - Muestra todos los candidatos solicitados o ninguno - Devuelve ningún candidato solo si hubo algún problema con el mensaje (consulta promptFeedback
) - Informa comentarios sobre cada candidato en finishReason
y safetyRatings
.
candidates[]
object (Candidate
)
Respuestas de los candidatos del modelo.
promptFeedback
object (PromptFeedback
)
Devuelve los comentarios de la instrucción relacionados con los filtros de contenido.
usageMetadata
object (UsageMetadata
)
Solo salida. Metadatos sobre las solicitudes de generación el uso de tokens.
Representación JSON |
---|
{ "candidates": [ { object ( |
PromptFeedback
Un conjunto de metadatos de comentarios que se especificó en la instrucción en GenerateContentRequest.content
blockReason
enum (BlockReason
)
Opcional. Si se configura, se bloqueó el mensaje y no se muestran candidatos. Reformula la instrucción.
safetyRatings[]
object (SafetyRating
)
Calificaciones de seguridad de la instrucción. Hay, como máximo, una calificación por categoría.
Representación JSON |
---|
{ "blockReason": enum ( |
BlockReason
Especifica el motivo por el que se bloqueó el mensaje.
Enumeraciones | |
---|---|
BLOCK_REASON_UNSPECIFIED |
Valor predeterminado Este valor no se usa. |
SAFETY |
Se bloqueó el mensaje por razones de seguridad. Inspecciona safetyRatings para comprender qué categoría de seguridad lo bloqueó. |
OTHER |
Se bloqueó el mensaje por motivos desconocidos. |
BLOCKLIST |
Se bloqueó el mensaje debido a los términos que se incluyen en la lista de términos bloqueados. |
PROHIBITED_CONTENT |
Se bloqueó el mensaje debido a que incluye contenido prohibido. |
UsageMetadata
Metadatos sobre el uso del token de la solicitud de generación.
promptTokenCount
integer
Cantidad de tokens en la instrucción. Cuando se establece cachedContent
, este sigue siendo el tamaño efectivo total de la instrucción, lo que significa que incluye la cantidad de tokens en el contenido almacenado en caché.
cachedContentTokenCount
integer
Cantidad de tokens en la parte almacenada en caché de la instrucción (el contenido almacenado en caché)
candidatesTokenCount
integer
Cantidad total de tokens en todos los candidatos de respuesta generados.
totalTokenCount
integer
Recuento total de tokens para la solicitud de generación (instrucción + candidatos de respuesta).
Representación JSON |
---|
{ "promptTokenCount": integer, "cachedContentTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } |
Candidato
- Representación JSON
- FinishReason
- GroundingAttribution
- AttributionSourceId
- GroundingPassageId
- SemanticRetrieverChunk
Un candidato de respuesta generado a partir del modelo.
content
object (Content
)
Solo salida. Contenido generado que muestra el modelo.
finishReason
enum (FinishReason
)
Opcional. Solo salida. El motivo por el que el modelo dejó de generar tokens.
Si está vacío, el modelo no dejó de generar tokens.
safetyRatings[]
object (SafetyRating
)
Lista de calificaciones para la seguridad de un candidato de respuesta.
Hay, como máximo, una calificación por categoría.
citationMetadata
object (CitationMetadata
)
Solo salida. Información de citas para el candidato generado por el modelo.
Este campo puede completarse con información de lectura de cualquier texto incluido en content
. Estos son pasajes que se "recitan" a partir del material protegido por derechos de autor de los datos de entrenamiento fundamentales del LLM.
tokenCount
integer
Solo salida. Recuento de tokens de este candidato.
groundingAttributions[]
object (GroundingAttribution
)
Solo salida. Información de atribución para las fuentes que contribuyeron a una respuesta fundamentada.
Este campo se propaga para las llamadas de GenerateAnswer
.
index
integer
Solo salida. Índice del candidato en la lista de candidatos de respuesta.
Representación JSON |
---|
{ "content": { object ( |
FinishReason
Define el motivo por el que el modelo dejó de generar tokens.
Enumeraciones | |
---|---|
FINISH_REASON_UNSPECIFIED |
Valor predeterminado Este valor no se usa. |
STOP |
Punto de parada natural del modelo o secuencia de paradas proporcionada. |
MAX_TOKENS |
Se alcanzó la cantidad máxima de tokens especificada en la solicitud. |
SAFETY |
El contenido del candidato de respuesta se marcó por motivos de seguridad. |
RECITATION |
Se marcó el contenido de la respuesta del candidato por motivos de recitación. |
LANGUAGE |
El contenido del candidato para la respuesta se marcó por usar un idioma no admitido. |
OTHER |
Motivo desconocido. |
BLOCKLIST |
Se detuvo la generación de tokens porque el contenido incluye términos prohibidos. |
PROHIBITED_CONTENT |
Se detuvo la generación de tokens porque podría incluir contenido prohibido. |
SPII |
Se detuvo la generación de tokens porque el contenido podría incluir información de identificación personal sensible (IIPS). |
MALFORMED_FUNCTION_CALL |
La llamada a función que generó el modelo no es válida. |
GroundingAttribution
Atribución de una fuente que contribuyó a una respuesta.
sourceId
object (AttributionSourceId
)
Solo salida. Es el identificador de la fuente que contribuye a esta atribución.
content
object (Content
)
Justificación del contenido fuente que constituye esta atribución
Representación JSON |
---|
{ "sourceId": { object ( |
AttributionSourceId
Es el identificador de la fuente que contribuye a esta atribución.
Campo de unión source
.
source
puede ser una de las siguientes opciones:
groundingPassage
object (GroundingPassageId
)
Es el identificador de un pasaje intercalado.
semanticRetrieverChunk
object (SemanticRetrieverChunk
)
Es el identificador de un Chunk
recuperado a través del recuperador semántico.
Representación JSON |
---|
{ // Union field |
GroundingPassageId
Es el identificador de una parte dentro de un GroundingPassage
.
passageId
string
Solo salida. ID del pasaje que coincide con el GroundingPassage.id
de GenerateAnswerRequest
.
partIndex
integer
Solo salida. Índice de la parte dentro del GroundingPassage.content
de GenerateAnswerRequest
.
Representación JSON |
---|
{ "passageId": string, "partIndex": integer } |
SemanticRetrieverChunk
Identificador de un Chunk
recuperado a través del recuperador semántico especificado en el GenerateAnswerRequest
con SemanticRetrieverConfig
.
source
string
Solo salida. Nombre de la fuente que coincide con el SemanticRetrieverConfig.source
de la solicitud. Ejemplo: corpora/123
o corpora/123/documents/abc
chunk
string
Solo salida. Nombre de la Chunk
que contiene el texto atribuido. Ejemplo: corpora/123/documents/abc/chunks/xyz
Representación JSON |
---|
{ "source": string, "chunk": string } |
CitationMetadata
Es una colección de atribuciones de fuente para un contenido.
citationSources[]
object (CitationSource
)
Citas a las fuentes de una respuesta específica.
Representación JSON |
---|
{
"citationSources": [
{
object ( |
CitationSource
Una cita a una fuente por una parte de una respuesta específica.
startIndex
integer
Opcional. Inicio del segmento de la respuesta que se atribuye a esta fuente.
El índice indica el inicio del segmento, medido en bytes.
endIndex
integer
Opcional. Final del segmento atribuido (exclusivo).
uri
string
Opcional. Es un URI que se atribuye como fuente para una parte del texto.
license
string
Opcional. Licencia del proyecto de GitHub que se atribuye como fuente del segmento.
Se requiere información de la licencia para las citas de códigos.
Representación JSON |
---|
{ "startIndex": integer, "endIndex": integer, "uri": string, "license": string } |
GenerationConfig
Opciones de configuración para la generación y la salida de modelos. No todos los parámetros se pueden configurar para todos los modelos.
stopSequences[]
string
Opcional. El conjunto de secuencias de caracteres (hasta 5) que detendrán la generación de resultados. Si se especifica, la API se detendrá cuando aparezca un stop_sequence
por primera vez. La secuencia de detención no se incluirá como parte de la respuesta.
responseMimeType
string
Opcional. Es el tipo de MIME del texto candidato generado. Los tipos de MIME admitidos son los siguientes: text/plain
: Salida de texto (predeterminado). application/json
: Es la respuesta JSON en los candidatos de respuesta. Consulta los documentos para obtener una lista de todos los tipos de MIME de texto admitidos.
responseSchema
object (Schema
)
Opcional. Esquema de salida del texto candidato generado. Los esquemas deben ser un subconjunto del esquema de OpenAPI y pueden ser objetos, primitivos o arrays.
Si se establece, también se debe establecer un responseMimeType
compatible. Tipos de MIME compatibles: application/json
: esquema para la respuesta JSON. Consulta la guía de generación de texto JSON para obtener más detalles.
candidateCount
integer
Opcional. Cantidad de respuestas generadas para mostrar.
Actualmente, este valor solo se puede establecer en 1. Si no la estableces, el valor predeterminado será 1.
maxOutputTokens
integer
Opcional. La cantidad máxima de tokens que se incluirán en un candidato de respuesta.
Nota: El valor predeterminado varía según el modelo. Consulta el atributo Model.output_token_limit
del Model
que muestra la función getModel
.
temperature
number
Opcional. Controla la aleatorización de la salida.
Nota: El valor predeterminado varía según el modelo. Consulta el atributo Model.temperature
del Model
que muestra la función getModel
.
Los valores pueden variar entre [0.0, 2.0].
topP
number
Opcional. Probabilidad acumulativa máxima de los tokens que se deben tener en cuenta durante el muestreo.
El modelo utiliza el muestreo combinado de k superior y p superior (núcleo).
Los tokens se ordenan según sus probabilidades asignadas para que solo se consideren los tokens más probables. El muestreo de Top-K limita directamente la cantidad máxima de tokens que se deben considerar, mientras que el muestreo de Nucleus limita la cantidad de tokens en función de la probabilidad acumulada.
Nota: El valor predeterminado varía según Model
y se especifica mediante el atributo Model.top_p
que muestra la función getModel
. Un atributo topK
vacío indica que el modelo no aplica el muestreo de Top-K ni permite configurar topK
en las solicitudes.
topK
integer
Opcional. La cantidad máxima de tokens que se deben tener en cuenta durante el muestreo.
Los modelos de Gemini usan el muestreo de núcleo con Top-p o una combinación de muestreo de núcleo y k superior. El muestreo de k superior considera el conjunto de topK
tokens más probables. Los modelos que se ejecutan con un muestreo de núcleo no permiten el parámetro de configuración topK.
Nota: El valor predeterminado varía según Model
y se especifica mediante el atributo Model.top_p
que muestra la función getModel
. Un atributo topK
vacío indica que el modelo no aplica el muestreo de Top-K ni permite configurar topK
en las solicitudes.
Representación JSON |
---|
{
"stopSequences": [
string
],
"responseMimeType": string,
"responseSchema": {
object ( |
HarmCategory
Es la categoría de una calificación.
Estas categorías abarcan varios tipos de daños que los desarrolladores podrían querer ajustar.
Enumeraciones | |
---|---|
HARM_CATEGORY_UNSPECIFIED |
La categoría no está especificada. |
HARM_CATEGORY_DEROGATORY |
Comentarios negativos o dañinos que se orientan a la identidad o el atributo protegido. |
HARM_CATEGORY_TOXICITY |
Contenido grosero, irrespetuoso u obsceno. |
HARM_CATEGORY_VIOLENCE |
Describe situaciones que representen violencia contra una persona o un grupo, o descripciones generales de imágenes sangrientas. |
HARM_CATEGORY_SEXUAL |
Incluye referencias a actos sexual o a otro contenido obsceno. |
HARM_CATEGORY_MEDICAL |
Promueve consejos médicos sin verificar. |
HARM_CATEGORY_DANGEROUS |
Contenido peligroso que promueve, facilita o fomenta actividades perjudiciales. |
HARM_CATEGORY_HARASSMENT |
Contenido de acoso. |
HARM_CATEGORY_HATE_SPEECH |
Contenido e incitación al odio o a la violencia. |
HARM_CATEGORY_SEXUALLY_EXPLICIT |
Contenido sexual explícito. |
HARM_CATEGORY_DANGEROUS_CONTENT |
Contenido peligroso. |
SafetyRating
Calificación de seguridad de un contenido.
La clasificación de seguridad contiene la categoría de daño y el nivel de probabilidad de daño en esa categoría para un contenido. El contenido se clasifica por seguridad en varias categorías de daños, y aquí se incluye la probabilidad de la clasificación del daño.
category
enum (HarmCategory
)
Obligatorio. La categoría de esta calificación.
probability
enum (HarmProbability
)
Obligatorio. La probabilidad de daño de este contenido.
blocked
boolean
¿Se bloqueó el contenido debido a esta clasificación?
Representación JSON |
---|
{ "category": enum ( |
HarmProbability
Es la probabilidad de que un contenido sea dañino.
El sistema de clasificación da la probabilidad de que el contenido no sea seguro. Esto no indica la gravedad del daño para un contenido.
Enumeraciones | |
---|---|
HARM_PROBABILITY_UNSPECIFIED |
Probabilidad no especificada. |
NEGLIGIBLE |
Las probabilidades de que el contenido no sean seguras son mínimas. |
LOW |
Hay pocas probabilidades de que el contenido sea inseguro. |
MEDIUM |
Tiene una probabilidad media de ser inseguro. |
HIGH |
Hay muchas probabilidades de que el contenido no sea seguro. |
SafetySetting
Configuración de seguridad, que afecta el comportamiento de bloqueo de seguridad.
Si pasas un parámetro de configuración de seguridad para una categoría, se cambia la probabilidad permitida de que se bloquee el contenido.
category
enum (HarmCategory
)
Obligatorio. La categoría de este parámetro de configuración.
threshold
enum (HarmBlockThreshold
)
Obligatorio. Controla el umbral de probabilidad en el que se bloquea el daño.
Representación JSON |
---|
{ "category": enum ( |
HarmBlockThreshold
Bloquear una probabilidad de daño especificada o más allá
Enumeraciones | |
---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED |
No se especificó el umbral. |
BLOCK_LOW_AND_ABOVE |
Se permitirá el contenido con NEGLIGIBLE. |
BLOCK_MEDIUM_AND_ABOVE |
Se permitirá el contenido con NEGLIGIBLE y LOW. |
BLOCK_ONLY_HIGH |
Se permitirá el contenido con NEGLIGIBLE, LOW y MEDIUM. |
BLOCK_NONE |
Se permitirá todo el contenido. |