列出词元并进行计数

Python 版 Vertex AI SDK (1.60.0 及更高版本) 包含一个集成词元化器,可让您在本地列出和统计提示的词元,而无需进行 API 调用。本页介绍了如何使用 Python 版 Vertex AI SDK 列出提示的词元及其词元 ID,以及如何获取提示的词元总数。

词元以及词元列表和计数的重要性

生成式 AI 模型会将提示中的文本和其他数据细分为单元(称为“词元”)以进行处理。数据转换为词元的方式取决于所使用的词元化器。词元可以是字符、字词或短语。

每个模型具有在提示和响应中可以处理的词元数上限。了解提示的词元数有助于您了解是否已超出此限制。此外,计数词元还会返回提示的可结算字符,这有助于您估算费用。

列出词元会返回您的提示被细分为的词元列表。每个列出的词元都与词元 ID 相关联,这有助于您进行问题排查和分析模型行为。

支持的模型

下表显示了支持词元列表和词元计数的模型:

列出词元 统计词元数
gemini-1.5-flash-002 gemini-1.5-flash-002
gemini-1.5-pro-002 gemini-1.5-pro-002
gemini-1.0-pro-002
gemini-1.0-pro-vision-001

获取提示的令牌和令牌 ID 列表

以下代码示例展示了如何获取提示的词元和词元 ID 列表。提示只能包含文本。不支持多模态提示。

Python

如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档

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}")

获取提示的词元数和计费字符数

以下代码示例展示了如何获取提示的词元数和计费字符数。支持仅包含文本的提示和多模态提示。

Python

如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档

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}")