La API de Vertex AI para Gemini te permite crear una aplicación con modelos de Gemini. Úsala para crear solicitudes y, luego, recibir respuestas que te ayudan a crear aplicaciones para tu caso de uso. En los siguientes temas, se incluyen algunos ejemplos de casos de uso para los modelos de Gemini:
- Casos de uso de Gemini 1.5 Pro y Gemini 1.5 Flash
- Casos de uso de Gemini 1.0 Pro Vision
- Caso de uso de Gemini 1.0 Pro
Crea una cuenta de Google Cloud para comenzar
Si deseas comenzar a usar la API de modelo de Vertex AI para Gemini, crea una cuenta de Google Cloud.
Después de crear tu cuenta, usa este documento para revisar el cuerpo de la solicitud del modelo de Gemini, los parámetros del modelo, el cuerpo de la respuesta y algunas solicitudes de muestra. y respuestas.
Cuando tengas todo listo, consulta la guía de inicio rápido de la API de Vertex AI para Gemini para aprender a enviar una solicitud a la API de Vertex AI Gemini con un SDK de lenguaje de programación o REST API
Envía una solicitud HTTP
En las siguientes pestañas, se muestra cómo enviar una solicitud HTTP con cada modelo de Gemini:
Gemini 1.5 Pro
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.5-pro:streamGenerateContent
Gemini 1.5 Flash
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.5-flash:streamGenerateContent
Gemini 1.0 Pro
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.0-pro:streamGenerateContent
Gemini 1.0 Pro Vision
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent
Si deseas enviar una solicitud de transmisión al modelo, consulta el
método streamGenerateContent
para obtener más información.
Para enviar una solicitud de no transmisión al modelo, usa el método
generateContent
.
Para obtener una lista de las regiones compatibles, consulta Ubicaciones disponibles.
Versiones del modelo
Para usar la versión de actualización automática, especifica el nombre del modelo sin el número de la versión final, por ejemplo, gemini-1.0-pro
en lugar de gemini-1.0-pro-001
.
Para obtener más información, consulta Versiones del modelo de Gemini y ciclo de vida.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
{ "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 } } } ] } ], "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 } }
Parámetros del modelo de Gemini
Puedes usar los siguientes parámetros en el cuerpo de la solicitud:
Parámetro | Descripción |
---|---|
role |
El rol en una conversación asociada con el contenido. Especificar un rol es obligatorio incluso en
casos de uso de un solo turno.
Los valores aceptables son los siguientes:
|
parts |
Partes ordenadas que conforman la entrada. Las partes pueden tener diferentes tipos de MIME.
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. |
text |
Las instrucciones de texto o el diálogo de chat que se incluirán en el mensaje. |
inlineData |
Datos serializados en bytes de la imagen, el clip de audio o el clip de video.
Para gemini-1.0-pro-vision , puedes especificar 1 imagen como máximo
con inlineData . Para especificar hasta 16 imágenes, usa
fileData .
|
mimeType |
El tipo de medio del archivo especificado en los campos data o fileUri . Los valores aceptables son los siguientes:
Haz clic para expandir los tipos de MIME.
En el caso de gemini-1.0-pro-vision , la duración máxima del video es de 2
minutos.
En el caso de Gemini 1.5 Pro , la duración máxima de un archivo de audio es de
8.4 horas, y la duración máxima de un archivo de video (sin audio) es de
una hora. Para obtener más información, consulta
Requisitos de contenido multimedia de Gemini 1.5 Pro.
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. |
data |
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 (mimeType ) de los datos.
límite de tamaño: 20 MB |
fileUri |
El URI de Cloud Storage del archivo que se incluirá en la instrucción. El objeto del bucket debe poder leerse de forma pública o residir en el mismo proyecto de Google Cloud que envía la solicitud. También debes especificar el tipo de medio (mimeType ) del archivo.
Para gemini-1.5-pro , el límite de tamaño es de 2 GB.
Para gemini-1.0-pro-vision , el límite de tamaño es de 20 MB.
|
videoMetadata |
Opcional. Para la entrada de video, el desplazamiento inicial y final del video en
Duración
formato Por ejemplo, para especificar un clip de 10 segundos a partir de la 1:00, configura
"start_offset": { "seconds": 60 } y
"end_offset": { "seconds": 70 } .
|
systemInstruction
|
Opcional. Disponible para gemini-1.5-pro y gemini-1.0-pro-002 .
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 text se contabilizan para el límite de tokens.
El campo role de systemInstruction se ignora y no afecta el rendimiento del modelo.
|
tools |
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. |
functionDeclarations |
Una o más declaraciones de funciones. Cada declaración de función contiene
información sobre una función que incluye lo siguiente:
Para obtener más información, consulta Llamadas a funciones. |
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
|
threshold |
El umbral para bloquear respuestas que podrían pertenecer a la categoría de seguridad especificada
según la probabilidad.
|
temperature |
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican topP y topK . La temperatura controla el grado de aleatorización en la selección de tokens.
Las temperaturas más bajas son buenas para los mensajes que requieren una respuesta menos abierta o de creativa, mientras que
las temperaturas más altas pueden generar resultados más diversos o creativos. Una temperatura de 0
significa que siempre se seleccionan los tokens de probabilidad más alta. En este caso, las respuestas para un mensaje determinado
son, en su mayoría, deterministas, pero es posible que haya una pequeña cantidad de variación.
Si el modelo muestra una respuesta demasiado genérica, demasiado corta o el modelo proporciona una respuesta de resguardo, intenta aumentar la temperatura.
|
maxOutputTokens |
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 conocer la cantidad máxima de tokens de salida de cada modelo, consulta las especificaciones del modelo en la página de modelos de Google. De forma predeterminada, Google usa el límite máximo de tokens de salida del modelo como la cantidad máxima de tokens que se pueden generar. |
topK |
El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. Un Top-K de
1 significa que el siguiente token seleccionado es el más probable entre todos los
tokens en el vocabulario del modelo (también llamado decodificación codiciosa), mientras que un Top-K de
3 significa que el siguiente token se selecciona de los tres
tokens más probables con la temperatura.
Para cada paso de elección de tokens, se muestran los tokens de Top-K con las probabilidades más altas. Luego, los tokens se filtran según el Top-P con el token final seleccionado a través del muestreo de temperatura. Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias. Rango: 1-40
gemini-1.0-pro y gemini-1.5-pro no son compatibles con topK
Valor predeterminado para gemini-1.0-pro-vision: 32
|
topP |
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 superior es 0.5 , el modelo elegirá
A o B como el siguiente token usando la temperatura y excluirá a C como
candidato.
Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias. Rango: 0.0 - 1.0
gemini-1.5-pro: 0.94
Valor predeterminado para gemini-1.0-pro: 1
Valor predeterminado para gemini-1.0-pro-vision: 1
|
frequencyPenalty |
Los valores positivos penalizan los tokens que aparecen repetidamente en el texto generado, lo que disminuye la probabilidad de repetir contenido.
Este valor máximo para frequencyPenalty es mayor que, pero no incluye, 2.0 . Su valor mínimo es -2.0 .
|
presencePenalty |
Los valores positivos penalizan los tokens que ya aparecen en el texto generado, lo que aumenta la probabilidad de generar contenido más diverso.
Este valor máximo para presencePenalty es mayor que, pero no incluye, 2.0 . Su valor mínimo es -2.0 .
|
candidateCount |
La cantidad de variaciones de respuesta que se mostrarán.
Este valor debe ser 1. |
stopSequences |
Especifica una lista de cadenas que le indica al modelo que deje de generar texto si se encuentra una de las cadenas en la respuesta. Si una cadena aparece varias veces en la respuesta, la respuesta trunca el lugar en que se encontró por primera vez.
Las cadenas distinguen entre mayúsculas y minúsculas.
Por ejemplo, si la siguiente es la respuesta que se muestra cuando no se especifica stopSequences :
public
static string reverse(string myString)
La respuesta que se muestra con stopSequences configurada como ["Str",
"reverse"] esla siguiente:
public static string
Máximo de 5 elementos en la lista. |
responseMimeType (Vista previa)
|
Opcional. Disponible para gemini-1.5-pro .
El formato de salida del texto candidato generado. Tipos de MIME admitidos:
|
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 } } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } }
Elemento de la respuesta | Descripción |
---|---|
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 |
Un número entero que especifica dónde comienza una cita en el contenido. |
endIndex |
Un número entero que especifica dónde termina una cita en content .
|
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 .
|
promptTokenCount |
Cantidad de tokens en la solicitud. |
candidatesTokenCount |
Cantidad de tokens en las respuestas. |
totalTokenCount |
Cantidad de tokens en la solicitud y las respuestas. |
Solicitudes de muestra
Texto
REST
Para probar un mensaje de texto mediante la API de Vertex AI con los eventos enviados por el servidor (SSE) habilitados, envía una solicitud POST al extremo del modelo del publicador con ?alt=sse
al final de la URL.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
Método HTTP y URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse
Cuerpo JSON de la solicitud:
{ "contents": { "role": "user", "parts": { "text": "Give me a recipe for banana bread." } }, "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.2, "topP": 0.8, "topK": 40 } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la respuesta de ejemplo.
Chat
Consulta también Envíar solicitudes de mensaje de chat (Gemini).
REST
Para probar un mensaje de chat mediante la API de Vertex AI con los eventos enviados por el servidor (SSE) habilitados, envía una solicitud POST al extremo del modelo del publicador con ?alt=sse
al final de la URL.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
Método HTTP y URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse
Cuerpo JSON de la solicitud:
{ "contents": [ { "role": "USER", "parts": { "text": "Hello!" } }, { "role": "MODEL", "parts": { "text": "Argh! What brings ye to my ship?" } }, { "role": "USER", "parts": { "text": "Wow! You are a real-life priate!" } } ], "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.2, "topP": 0.8, "topK": 40, "maxOutputTokens": 200, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la respuesta de ejemplo.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Multimodal
Consulta también Enviar solicitudes de mensajes multimodales.
REST
Para probar una instrucción de texto con la API de Vertex AI, envía una solicitud POST al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
Método HTTP y URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent
Cuerpo JSON de la solicitud:
{ "contents": { "role": "user", "parts": [ { "fileData": { "mimeType": "image/jpeg", "fileUri": "gs://cloud-samples-data/ai-platform/flowers/daisy/10559679065_50d2b16f6d.jpg" } }, { "text": "Describe this picture." } ] }, "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.4, "topP": 1.0, "topK": 32, "maxOutputTokens": 2048 } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la respuesta de ejemplo.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI C#.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Función
Consulta también Llamadas a funciones.
REST
Para probar una instrucción de texto con la API de Vertex AI, envía una solicitud POST al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
Método HTTP y URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent
Cuerpo JSON de la solicitud:
{ "contents": { "role": "user", "parts": { "text": "Which theaters in Mountain View show Barbie movie?" } }, "tools": [ { "function_declarations": [ { "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "string", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": [ "description" ] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which are is currently playing in theaters", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" } }, "required": [ "location" ] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" }, "theater": { "type": "string", "description": "Name of the theater" }, "date": { "type": "string", "description": "Date for requested showtime" } }, "required": [ "location", "movie", "theater", "date" ] } } ] } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la respuesta de ejemplo.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Respuestas de muestra
Texto
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Ingredients:\n\n- 3 ripe bananas, mashed\n- 1 cup sugar"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "\n- 1/2 cup (1 stick) unsalted butter, softened\n"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "- 2 large eggs\n- 2 cups all-purpose flour\n- 1 teaspoon baking soda\n- 1/2 teaspoon salt\n- "}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "1/2 cup chopped walnuts (optional)\n\nInstructions:\n\n1. Preheat oven to 350 degrees F (175 degrees C). Grease"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " and flour a 9x5 inch loaf pan.\n2. In a large bowl, cream together the butter and sugar until light and fluffy. Beat in the eggs one at a time, then stir in the mashed bananas.\n3"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 322,"endIndex": 451,"uri": "https://discover.texasrealfood.com/texas-home-cooking/whats-in-season-plums-exploring-health-benefits-varieties-and-recipes"}]}}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": ". In a separate bowl, whisk together the flour, baking soda, and salt. Gradually add the dry ingredients to the wet ingredients, mixing until just combined. Fold in the walnuts, if desired.\n4. Pour the batter into the"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 472,"endIndex": 614,"uri": "https://commandame.com/urban-cookhouse-half-baked-cookie-recipe/"}]}}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " prepared loaf pan and bake for 50-60 minutes, or until a toothpick inserted into the center comes out clean.\n5. Let the bread cool in the pan for 10 minutes before turning it out onto a wire rack to cool completely."}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 666,"endIndex": 796,"uri": "https://dessertdonelight.com/healthy-hawaiian-banana-bread/"},{"startIndex": 728,"endIndex": 851,"uri": "https://earlsgrocery.com/gluten-free-bread/gluten-free-yeast-free-bread-healthy-and-nutition"}]}}],"usageMetadata": {"promptTokenCount": 8,"candidatesTokenCount": 245,"totalTokenCount": 253}}
Chat
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Avast there, landlubber! Ye be mistaken. I be but a"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "LOW"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " humble pirate of the seven seas, brought to life by the magic of artificial intelligence"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": ". I be no real-life pirate, but I be mighty good at pretendin'!"}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"usageMetadata": {"promptTokenCount": 23,"candidatesTokenCount": 50,"totalTokenCount": 73}}
Multimodal
[{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": " A daisy is growing up through a pile of brown and yellow fall leaves"
}
]
},
"finishReason": "STOP",
"safetyRatings": [
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
],
"usageMetadata": {
"promptTokenCount": 262,
"candidatesTokenCount": 14,
"totalTokenCount": 276
}
}]
Función
[{
"candidates": [
{
"content": {
"parts": [
{
"functionCall": {
"name": "find_theaters",
"args": {
"movie": "Barbie",
"location": "Mountain View, CA"
}
}
}
]
},
"finishReason": "STOP",
"safetyRatings": [
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
],
"usageMetadata": {
"promptTokenCount": 9,
"totalTokenCount": 9
}
}]
¿Qué sigue?
Aprende a usar la API de Vertex AI para Gemini:
- Aprende a enviar solicitudes de mensaje de chat.
- Aprende a enviar solicitudes de mensajes multimodales.
- Aprende a llamar funciones.
- Obtén información para obtener un recuento de tokens.
- Obtén más información para configurar atributos de seguridad.