CountTokens API 會先計算輸入的權杖數量,再將要求傳送至 Gemini API。
使用 CountTokens API 可避免要求超出模型情境視窗,並根據可計費的字元或權杖估算潛在費用。
CountTokens API 可以使用與 Gemini API 推論要求相同的 contents
參數。
支援的模型
- Gemini 2.5 Flash 圖片預覽 (預先發布版)
- Gemini 2.5 Flash-Lite
- Gemini 2.0 Flash (可生成圖片) (預先發布版)
- Vertex AI Model Optimizer (實驗功能)
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
參數清單
這個類別包含兩個主要屬性:role
和 parts
。role
屬性代表內容的製作人,而 parts
屬性則包含多個元素,每個元素代表訊息中的資料區隔。
參數 | |
---|---|
|
自由參加: 建立訊息的實體身分。將字串設為下列其中一項:
在多輪對話中,系統會使用 如果是非多輪對話,這個欄位可以留空或不設定。 |
|
組成單一郵件的排序部分清單。不同部分可能會有不同的 IANA MIME 類型。 |
Part
包含媒體的資料類型,是多部分 Content
訊息的一部分。
參數 | |
---|---|
|
自由參加: 文字提示或程式碼片段。 |
|
自由參加: 以原始位元組表示的內嵌資料。 |
|
自由參加: 儲存在檔案中的資料。 |
Blob
內容 Blob。如果可以,請以文字而非原始位元組的形式傳送。
參數 | |
---|---|
|
資料的 IANA MIME 類型。 |
|
原始位元組。 |
FileData
以 URI 為基礎的資料。
參數 | |
---|---|
|
資料的 IANA MIME 類型。 |
|
儲存資料的檔案的 Cloud Storage URI。 |
system_instruction
這個欄位適用於使用者提供的 system_instructions
。這與 contents
相同,但支援的內容類型有限。
參數 | |
---|---|
|
資料的 IANA MIME 類型。系統會在內部忽略這個欄位。 |
|
僅限文字。使用者想傳送給模型的指令。 |
FunctionDeclaration
函式宣告的結構化表示法,如 OpenAPI 3.0 規格所定義,代表模型可能會產生 JSON 輸入內容的函式。
參數 | |
---|---|
|
要呼叫的函式名稱。 |
|
自由參加: 函式的說明和用途。 |
|
自由參加: 以 OpenAPI JSON 結構定義物件格式說明函式的參數:OpenAPI 3.0 規格。 |
|
自由參加: 以 OpenAPI JSON 結構定義物件格式說明函式的輸出內容:OpenAPI 3.0 規格。 |
範例
根據文字提示取得權杖數
這個範例會計算單一文字提示的權杖:
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: 提示中要加入的文字指令。
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" }] }] }
如要傳送要求,請選擇以下其中一個選項:
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 回應。
Python
安裝
pip install --upgrade google-genai
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
瞭解如何安裝或更新 Go。
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
安裝
npm install @google/genai
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
瞭解如何安裝或更新 Java。
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
從媒體提示取得權杖數
這個範例會計算使用各種媒體類型的提示權杖。
REST
如要使用 Vertex AI API 取得提示的權杖數量和可計費字元數,請將POST
要求傳送至發布商模型端點。
使用任何要求資料之前,請先替換以下項目:
- LOCATION:處理要求的區域。可用的選項包括:
按一下即可展開可用地區的部分清單
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID:。
- MODEL_ID:您要使用的多模態模型 ID。
- ROLE:
與內容相關聯的對話角色。即使是單輪對話,也必須指定角色。
可接受的值包括:
USER
:指定您傳送的內容。
- TEXT: 提示中要加入的文字指令。
- FILE_URI:
要納入提示的檔案 URI 或網址。可接受的值包括:
- Cloud Storage 值區 URI:物件必須可公開讀取,或位於傳送要求的 Google Cloud 專案中。對於
gemini-2.0-flash
和gemini-2.0-flash-lite
,大小上限為 2 GB。 - HTTP 網址:檔案網址必須可公開讀取。每項要求可指定一個影片檔案、一個音訊檔案,以及最多 10 個圖片檔案。音訊檔、影片檔和文件不得超過 15 MB。
- YouTube 影片網址:YouTube 影片必須由您用來登入 Google Cloud 控制台的帳戶擁有,或是設為公開。每個要求僅支援一個 YouTube 影片網址。
指定
fileURI
時,您也必須指定檔案的媒體類型 (mimeType
)。如果啟用 VPC Service Controls,系統不支援為fileURI
指定媒體檔案網址。 - Cloud Storage 值區 URI:物件必須可公開讀取,或位於傳送要求的 Google Cloud 專案中。對於
- MIME_TYPE:
data
或fileUri
欄位中指定檔案的媒體類型。可接受的值包括:按一下即可展開 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 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
JSON 要求主體:
{ "contents": [{ "role": "ROLE", "parts": [ { "file_data": { "file_uri": "FILE_URI", "mime_type": "MIME_TYPE" } }, { "text": "TEXT } ] }] }
如要傳送要求,請選擇以下其中一個選項:
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 回應。
Python
安裝
pip install --upgrade google-genai
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
瞭解如何安裝或更新 Go。
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
安裝
npm install @google/genai
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
瞭解如何安裝或更新 Java。
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
後續步驟
- 進一步瞭解 Gemini API。