Utilisez l'API CountTokens pour éviter que les requêtes ne dépassent la fenêtre de contexte du modèle et estimer les coûts potentiels en fonction des caractères facturables.
L'API CountTokens peut utiliser le même paramètre contents
que les requêtes d'inférence de l'API Gemini.
Modèles compatibles :
Modèle | Code |
---|---|
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 |
Limites :
gemini-1.0-pro-vision-001
et gemini-1.0-ultra-vision-001
utilisent un nombre fixe de jetons pour les entrées vidéo.
Exemple de syntaxe
Syntaxe pour envoyer une requête de décompte de jetons.
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([...])
Liste des paramètres
Cette classe comprend deux propriétés principales : role
et parts
. La propriété role
indique l'individu qui produit le contenu, tandis que la propriété parts
contient plusieurs éléments, chacun représentant un segment de données au sein d'un message.
Paramètres | |
---|---|
|
Facultatif : Identité de l'entité qui crée le message. Définissez la chaîne sur l'un des éléments suivants :
La valeur Pour les conversations non multitours, ce champ peut être vide ou non défini. |
|
Une liste de parties ordonnées qui composent un seul message. Chaque partie peut avoir des types MIME IANA différents. |
Part
Type de données contenant du contenu multimédia faisant partie d'un message Content
en plusieurs parties.
Paramètres | |
---|---|
|
Facultatif : Requête de texte ou extrait de code. |
|
Facultatif : Données intégrées dans des octets bruts. |
|
Facultatif : Données stockées dans un fichier. |
Blob
Blob de contenu. Si possible, envoyez le message sous forme de texte plutôt que d'octets bruts.
Paramètres | |
---|---|
|
Type MIME IANA des données. |
|
Octets bruts |
FileData
Données basées sur l'URI.
Paramètres | |
---|---|
|
Type MIME IANA des données. |
|
URI Cloud Storage du fichier stockant les données. |
system_instruction
Ce champ est pour les system_instructions
fournies par l'utilisateur. Il est identique à contents
, mais avec une compatibilité limitée des types de contenu.
Paramètres | |
---|---|
|
Type MIME IANA des données. Ce champ est ignoré en interne. |
|
Texte uniquement. Instructions que les utilisateurs souhaitent transmettre au modèle. |
FunctionDeclaration
Représentation structurée d'une déclaration de fonction telle que définie par la spécification OpenAPI 3.0, qui représente une fonction pour laquelle le modèle peut générer des entrées JSON.
Paramètres | |
---|---|
|
Nom de la fonction à appeler. |
|
Facultatif : Description et objectif de la fonction. |
|
Facultatif : Décrit les paramètres de la fonction au format d'objet de schéma JSON OpenAPI : Spécification OpenAPI 3.0. |
|
Facultatif : Décrit la sortie de la fonction au format d'objet de schéma JSON OpenAPI : Spécification OpenAPI 3.0. |
Exemples
Obtenir le nombre de jetons d'une requête textuelle
Cet exemple compte les jetons d'une seule requête textuelle :
REST
Pour obtenir le nombre de jetons et le nombre de caractères facturables d'une requête à l'aide de l'API Vertex AI, envoyez une requête POST
au point de terminaison du modèle de diffuseur.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION : région dans laquelle traiter la requête. Les options disponibles sont les suivantes :
Cliquer pour développer une liste partielle des régions disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID : l'ID de votre projet.
- MODEL_ID : ID du modèle multimodal que vous souhaitez utiliser.
- ROLE : rôle dans une conversation associée au contenu. La spécification d'un rôle est requise, même dans les cas d'utilisation à un seul tour.
Les valeurs acceptées incluent les suivantes :
USER
: spécifie le contenu que vous envoyez.
- TEXT : instructions textuelles à inclure dans la requête.
- NAME : nom de la fonction à appeler.
- DESCRIPTION : description et objectif de la fonction.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Corps JSON de la requête :
{ "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" ] } } ] }] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON semblable à la suivante.
Python
NodeJS
Java
Go
Obtenir le nombre de jetons d'une requête multimédia
Cet exemple compte les jetons d'une requête utilisant différents types de contenus.
REST
Pour obtenir le nombre de jetons et le nombre de caractères facturables d'une requête à l'aide de l'API Vertex AI, envoyez une requête POST
au point de terminaison du modèle de diffuseur.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION : région dans laquelle traiter la requête. Les options disponibles sont les suivantes :
Cliquer pour développer une liste partielle des régions disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID : l'ID de votre projet.
- MODEL_ID : ID du modèle multimodal que vous souhaitez utiliser.
- ROLE : rôle dans une conversation associée au contenu. La spécification d'un rôle est requise, même dans les cas d'utilisation à un seul tour.
Les valeurs acceptées incluent les suivantes :
USER
: spécifie le contenu que vous envoyez.
- TEXT : instructions textuelles à inclure dans la requête.
- FILE_URI : URI ou URL du fichier à inclure dans la requête. Les valeurs acceptées incluent les suivantes :
- URI du bucket Cloud Storage : l'objet doit être lisible publiquement ou se trouver dans le même projet Google Cloud que celui qui envoie la requête.
- URL HTTP : l'URL du fichier doit être lisible publiquement. Vous pouvez spécifier un fichier vidéo et jusqu'à 10 fichiers image par requête. Les fichiers audio et les documents ne doivent pas dépasser 15 Mo.
- URL de la vidéo YouTube : la vidéo YouTube doit appartenir au compte que vous avez utilisé pour vous connecter à la console Google Cloud ou être publique. Une seule URL de vidéo YouTube est acceptée par requête.
Lorsque vous spécifiez un
fileURI
, vous devez également spécifier le type de contenu (mimeType
) du fichier. - MIME_TYPE : type de contenu du fichier spécifié dans les champs
data
oufileUri
. Les valeurs acceptées incluent les suivantes :Cliquer pour développer les types 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
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
Corps JSON de la requête :
{ "contents": [{ "role": "ROLE", "parts": [ { "file_data": { "file_uri": "FILE_URI", "mime_type": "MIME_TYPE" } }, { "text": "TEXT } ] }] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON semblable à la suivante.
Python
NodeJS
Java
Go
Étapes suivantes
- Apprenez-en plus sur l'API Gemini.