本页介绍了如何使用 countTokens
API 获取提示的词元数和计费字符数。
支持的模型
以下多模态模型支持获取提示词元数的估算值:
gemini-1.5-flash-002
gemini-1.5-pro-002
gemini-1.0-pro-002
gemini-1.0-pro-vision-001
如需详细了解模型版本,请参阅 Gemini 模型版本和生命周期。
获取提示的词元数
您可以使用 Vertex AI API 获取提示的词元数估计值和计费字符数。
Python
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档。
Java
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Java 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Java API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Node.js 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Go 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Go API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需使用 Vertex AI API 获取提示的词元数和计费字符数,请向发布者模型端点发送 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:处理请求的区域。可用的选项包括:
点击即可展开可用区域的部分列表
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID:您的项目 ID。
- MODEL_ID:您要使用的多模态模型 ID。
- ROLE:与内容关联的对话中的角色。即使在单轮应用场景中,也需要指定角色。
可接受的值包括:
USER
:指定由您发送的内容。
- TEXT:要包含在提示中的文本说明。
- NAME:要调用的函数名称。
- DESCRIPTION:函数的说明和用途。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
请求 JSON 正文:
{ "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" ] } } ] }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
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
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$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
您应该收到类似以下内容的 JSON 响应。
控制台
如需在 Google Cloud 控制台中使用 Vertex AI Studio 获取提示的词元数,请执行以下步骤:
- 在 Google Cloud 控制台的“Vertex AI”部分,进入 Vertex AI Studio 页面。
- 点击打开自由格式模式或打开聊天工具。
- 系统会在您在 Prompt 窗格中输入内容时计算并显示词元数。其中包含所有输入文件中的词元数。
- 如需了解更多详情,请点击 <count> 个词元以打开提示词元化器。
- 如需在文本提示中查看词元(使用不同颜色标记每个词元 ID 的边界进行突出显示),请点击词元 ID 转换为文本。不支持媒体词元。
- 如需查看词元 ID,请点击词元 ID。
要关闭词元化器工具窗格,请点击 X,或点击窗格外部。
包含图片或视频的文本的 curl 命令示例:
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="my-project"
TEXT="Provide a summary with about two sentences for the following article."
REGION="us-central1"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:countTokens -d \
$'{
"contents": [{
"role": "user",
"parts": [
{
"file_data": {
"file_uri": "gs://cloud-samples-data/generative-ai/video/pixel8.mp4",
"mime_type": "video/mp4"
}
},
{
"text": "'"$TEXT"'"
}]
}]
}'
纯文本的 curl 命令示例:
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="my-project"
TEXT="Provide a summary with about two sentences for the following article."
REGION="us-central1"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:countTokens -d \
$'{
"contents": [{
"role": "user",
"parts": [{
"text": "'"$TEXT"'"
}]
}]
}'
价格和配额
使用 CountTokens
API 无需付费或配额限制。CountTokens
API 的配额上限为每分钟 3000 个请求。