列出及計算符記

本頁面說明如何使用 Google Gen AI SDK 列出提示的權杖和權杖 ID,以及取得提示的權杖總數。

權杖,以及權杖列出和計數的重要性

生成式 AI 模型會將提示中的文字和其他資料拆解成較小的單元,稱為「詞元」,以便處理。資料轉換為權杖的方式取決於使用的權杖化工具。詞元可以是字元、字詞或詞組。

每種模型都有可處理的提示和回覆詞元數量上限。瞭解提示的權杖數量,即可判斷是否超過上限。此外,計算權杖也會傳回提示的可計費字元,協助您估算費用。

列出權杖會傳回提示拆解成的權杖清單。 每個列出的權杖都與權杖 ID 相關聯,有助於排解問題及分析模型行為。

支援的模型

下表列出支援權杖清單和權杖計數的模型:

取得提示的權杖和權杖 ID 清單

下列程式碼範例說明如何取得提示的權杖和權杖 ID 清單。提示只能包含文字。不支援多模態提示。

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

from google import genai from google.genai.types import HttpOptions  client = genai.Client(http_options=HttpOptions(api_version="v1")) response = client.models.compute_tokens(     model="gemini-2.5-flash",     contents="What's the longest word in the English language?", )  print(response) # Example output: # tokens_info=[TokensInfo( #    role='user', #    token_ids=[1841, 235303, 235256, 573, 32514, 2204, 575, 573, 4645, 5255, 235336], #    tokens=[b'What', b"'", b's', b' the', b' longest', b' word', b' in', b' the', b' English', b' language', b'?'] #  )]

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

import ( 	"context" 	"encoding/json" 	"fmt" 	"io"  	genai "google.golang.org/genai" )  // computeWithTxt shows how to compute tokens with text input. func computeWithTxt(w io.Writer) error { 	ctx := context.Background()  	client, err := genai.NewClient(ctx, &genai.ClientConfig{ 		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"}, 	}) 	if err != nil { 		return fmt.Errorf("failed to create genai client: %w", err) 	}  	modelName := "gemini-2.5-flash" 	contents := []*genai.Content{ 		{Parts: []*genai.Part{ 			{Text: "What's the longest word in the English language?"}, 		}, 			Role: "user"}, 	}  	resp, err := client.Models.ComputeTokens(ctx, modelName, contents, nil) 	if err != nil { 		return fmt.Errorf("failed to generate content: %w", err) 	}  	type tokenInfoDisplay struct { 		IDs    []int64  `json:"token_ids"` 		Tokens []string `json:"tokens"` 	} 	// See the documentation: https://pkg.go.dev/google.golang.org/genai#ComputeTokensResponse 	for _, instance := range resp.TokensInfo { 		display := tokenInfoDisplay{ 			IDs:    instance.TokenIDs, 			Tokens: make([]string, len(instance.Tokens)), 		} 		for i, t := range instance.Tokens { 			display.Tokens[i] = string(t) 		}  		data, err := json.MarshalIndent(display, "", "  ") 		if err != nil { 			return fmt.Errorf("failed to marshal token info: %w", err) 		} 		fmt.Fprintln(w, string(data)) 	}  	// Example response: 	// { 	// 	"ids": [ 	// 		1841, 	// 		235303, 	// 		235256, 	//    ... 	// 	], 	// 	"values": [ 	// 		"What", 	// 		"'", 	// 		"s", 	//    ... 	// 	] 	// }  	return nil } 

取得提示的權杖數和可計費字元數

下列程式碼範例說明如何取得提示的權杖數量和可計費字元數。系統支援純文字和多模態提示。

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

from google import genai from google.genai.types import HttpOptions  client = genai.Client(http_options=HttpOptions(api_version="v1"))  prompt = "Why is the sky blue?"  # Send text to Gemini response = client.models.generate_content(     model="gemini-2.5-flash", contents=prompt )  # Prompt and response tokens count print(response.usage_metadata)  # Example output: #  cached_content_token_count=None #  candidates_token_count=311 #  prompt_token_count=6 #  total_token_count=317

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

import ( 	"context" 	"encoding/json" 	"fmt" 	"io"  	genai "google.golang.org/genai" )  // generateTextAndCount shows how to generate text and obtain token count metadata from the model response. func generateTextAndCount(w io.Writer) error { 	ctx := context.Background()  	client, err := genai.NewClient(ctx, &genai.ClientConfig{ 		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"}, 	}) 	if err != nil { 		return fmt.Errorf("failed to create genai client: %w", err) 	}  	modelName := "gemini-2.5-flash" 	contents := []*genai.Content{ 		{Parts: []*genai.Part{ 			{Text: "Why is the sky blue?"}, 		}, 			Role: "user"}, 	}  	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil) 	if err != nil { 		return fmt.Errorf("failed to generate content: %w", err) 	}  	usage, err := json.MarshalIndent(resp.UsageMetadata, "", "  ") 	if err != nil { 		return fmt.Errorf("failed to convert usage metadata to JSON: %w", err) 	} 	fmt.Fprintln(w, string(usage))  	// Example response: 	// { 	// 	 "candidatesTokenCount": 339, 	// 	 "promptTokenCount": 6, 	// 	 "totalTokenCount": 345 	// }  	return nil }