Lister et compter les jetons

Le SDK Vertex AI pour Python (1.60.0 et versions ultérieures) inclut un service de tokenisation intégré, qui vous permet de répertorier et de compter localement les jetons d'une requête sans avoir à effectuer d'appels d'API. Cette page explique comment lister les jetons et leurs ID de jeton d'une requête, et comment obtenir le nombre total de jetons d'une requête à l'aide du SDK Vertex AI pour Python.

Les jetons et l'importance de répertorier et compter les jetons

Les modèles d'IA générative décomposent le texte et d'autres données d'une requête en unités appelées jetons à traiter. La manière dont les données sont converties en jetons dépend de la fonction de tokenisation utilisée. Un jeton peut consister en caractères, en mots ou en expressions.

Chaque modèle dispose d'un nombre maximal de jetons qu'il peut gérer dans une requête et une réponse. Connaître le nombre de jetons de votre requête vous permet de savoir si vous avez dépassé cette limite ou non. De plus, le comptage des jetons renvoie également les caractères facturables de l'invite, ce qui vous aide à estimer les coûts.

Répertorier les jetons renvoie la liste des jetons en lesquels votre requête est divisée. Chaque jeton listé est associé à un ID de jeton, qui vous aide à résoudre les problèmes et à analyser le comportement du modèle.

Modèles compatibles

Le tableau suivant présente les modèles compatibles avec la liste et le comptage des jetons :

Répertorier les jetons Compter les jetons
gemini-1.5-flash-001 gemini-1.5-flash-001
gemini-1.5-pro-001 gemini-1.5-pro-001
gemini-1.0-pro-002
gemini-1.0-pro-vision-001

Obtenir la liste des jetons et des ID de jetons pour une requête

L'exemple de code suivant vous montre comment obtenir la liste des jetons et des ID de jetons pour une requête. La requête ne doit contenir que du texte. Les requêtes multimodales ne sont pas acceptées.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.

from vertexai.preview.tokenization import get_tokenizer_for_model

# using local tokenzier
tokenizer = get_tokenizer_for_model("gemini-1.5-flash")

prompt = "hello world"
response = tokenizer.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")

prompt = ["hello world", "what's the weather today"]
response = tokenizer.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")

Obtenir le nombre de jetons et les caractères facturables d'une requête

L'exemple de code suivant montre comment obtenir le nombre de jetons et le nombre de caractères facturables d'une requête. Les requêtes textuelles et multimodales sont acceptées.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.

import vertexai
from vertexai.generative_models import GenerativeModel

# TODO(developer): Update project & location
vertexai.init(project=PROJECT_ID, location=LOCATION)

# using Vertex AI Model as tokenzier
model = GenerativeModel("gemini-1.5-flash")

prompt = "hello world"
response = model.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")
print(f"Prompt Character Count: {response.total_billable_characters}")

prompt = ["hello world", "what's the weather today"]
response = model.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")
print(f"Prompt Character Count: {response.total_billable_characters}")