Usa la API de CountTokens para evitar que las solicitudes excedan la ventana de contexto del modelo y estimar los costos potenciales según los caracteres facturables.
La API de CountTokens puede usar el mismo parámetro contents
que las solicitudes de inferencia
de la API de Gemini.
Modelos compatibles:
Modelo | Código |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-002 gemini-1.5-flash-001 gemini-1.5-flash-preview-0514 |
Gemini 1.5 Pro | gemini-1.5-pro-002 gemini-1.5-pro-001 gemini-1.5-pro-preview-0514 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-vision gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | gemini-1.0-pro gemini-1.0-pro-001 gemini-1.0-pro-002 |
Gemini Experimental | gemini-experimental |
Limitaciones:
gemini-1.0-pro-vision-001
y gemini-1.0-ultra-vision-001
usan una cantidad
fija de tokens para las entradas de video.
Ejemplo de sintaxis
La sintaxis para enviar una solicitud de recuento de tokens.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:countTokens \ -d '{ "contents": [{ ... }], "system_instruction": { "role": "...", "parts": [{ ... }], "tools": [{ "function_declarations": [{ ... }] }], } }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.count_tokens([...])
Lista de parámetros
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 | |
---|---|
|
Opcional: La identidad de la entidad que crea el mensaje. Establece la cadena en uno de los siguientes valores:
El valor En el caso de las conversaciones que no tengan varios turnos, este campo se puede dejar en blanco o sin configurar. |
|
Una lista de partes ordenadas que conforman un solo mensaje. Es posible que las diferentes partes tengan distintos tipos de MIME de IANA. |
Part
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. |
|
Opcional: Datos almacenados en un archivo. |
Blob
BLOB de contenido. Si es posible, envía como texto en lugar de bytes sin procesar.
Parámetros | |
---|---|
|
Tipo de MIME de IANA de los datos. |
|
Bytes sin procesar. |
FileData
Los datos basados en el URI.
Parámetros | |
---|---|
|
Tipo de MIME de IANA de los datos. |
|
El URI de Cloud Storage para el archivo que almacena los datos. |
system_instruction
Este campo es para el system_instructions
proporcionado por el usuario. Es igual
a contents
, pero con una compatibilidad limitada de los tipos de contenido.
Parámetros | |
---|---|
|
Tipo de MIME de IANA de los datos. Este campo se ignora de forma interna. |
|
Solo texto. Las instrucciones que los usuarios desean pasar al modelo. |
FunctionDeclaration
Una representación estructurada de una declaración de función según lo definido por la especificación de OpenAPI 3.0 que representa una función para la que el modelo puede generar entradas JSON.
Parámetros | |
---|---|
|
El nombre de la función a la que se llamará. |
|
Opcional: Descripción y propósito de la función. |
|
Opcional: Describe los parámetros de la función en el formato de objeto de esquema JSON de OpenAPI: especificación de OpenAPI 3.0. |
|
Opcional: Describe el resultado de la función en el formato de objeto de esquema JSON de OpenAPI: especificación de OpenAPI 3.0. |
Ejemplos
Obtén el recuento de tokens a partir de un mensaje de texto
En este ejemplo, se cuentan los tokens de un solo mensaje de texto:
REST
Para obtener el recuento de tokens y la cantidad de caracteres facturables de un mensaje mediante la API de Vertex AI, envía una solicitud POST
al extremo del modelo del publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región para procesar la solicitud. Las opciones disponibles incluyen las siguientes:
Haz clic para expandir una lista parcial de regiones disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: El ID del proyecto.
- MODEL_ID: el ID del modelo multimodal que deseas usar.
- 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:
USER
: especifica el contenido que envías.
- TEXT: Las instrucciones de texto que se incluirán en el mensaje.
- NAME: el nombre de la función a la que se llamará.
- DESCRIPTION: la descripción y el propósito de la función.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Cuerpo JSON de la solicitud:
{ "contents": [{ "role": "ROLE", "parts": [{ "text": "TEXT" }] }], "system_instruction": { "role": "ROLE", "parts": [{ "text": "TEXT" }] } "tools": [{ "function_declarations": [ { "name": "NAME", "description": "DESCRIPTION", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "TYPE", "description": "DESCRIPTION" } }, "required": [ "location" ] } } ] }] }
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Python
NodeJS
Java
Go
Obtén el recuento de tokens a partir de un mensaje de contenido multimedia
En este ejemplo, se cuentan los tokens de un mensaje que usa varios tipos de medios.
REST
Para obtener el recuento de tokens y la cantidad de caracteres facturables de un mensaje mediante la API de Vertex AI, envía una solicitud POST
al extremo del modelo del publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región para procesar la solicitud. Las opciones disponibles incluyen las siguientes:
Haz clic para expandir una lista parcial de regiones disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: El ID del proyecto.
- MODEL_ID: el ID del modelo multimodal que deseas usar.
- 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:
USER
: especifica el contenido que envías.
- TEXT: Las instrucciones de texto que se incluirán en el mensaje.
- FILE_URI:
Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:
- URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo proyecto de Google Cloud que envía la solicitud.
- URL HTTP: La URL del archivo debe ser legible públicamente. Puedes especificar un archivo de video y hasta 10 archivos de imagen por solicitud. Los archivos de audio y los documentos no pueden superar los 15 MB.
- URL del video de YouTube: El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la consola de Google Cloud o ser público. Solo se admite una URL de video de YouTube por solicitud.
Cuando especifiques un
fileURI
, también debes especificar el tipo de medio (mimeType
) del archivo. - MIME_TYPE
El tipo de medio del archivo especificado en los campos
data
ofileUri
. Los valores aceptables son los siguientes:Haz clic para expandir los tipos de MIME.
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
HTTP method and URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Cuerpo JSON de la solicitud:
{ "contents": [{ "role": "ROLE", "parts": [ { "file_data": { "file_uri": "FILE_URI", "mime_type": "MIME_TYPE" } }, { "text": "TEXT } ] }] }
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Python
NodeJS
Java
Go
¿Qué sigue?
- Obtén más información sobre la API de Gemini.