このページでは、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 を使用して、プロンプトのトークン数の推定値と課金対象文字数を取得できます。
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある C# の設定手順を完了してください。詳細については、Vertex AI C# API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Go の設定手順を完了してください。詳細については、Vertex AI Go API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
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 メソッドと URL:
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" ] } } ] }] }
リクエストを送信するには、次のいずれかのオプションを選択します。
リクエスト本文を 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"
リクエスト本文を 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 レスポンスが返されます。
レスポンス
{ "totalTokens": 43 }
Google Cloud コンソールの Vertex AI Studio を使用してプロンプトのトークン数を取得する手順は次のとおりです。
- Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。
- [自由形式を開く] または [Chat を開く] をクリックします。
- [プロンプト] ペインに入力するたびにトークン数が計算され、表示されます。これには、入力ファイル内のトークン数も含まれます。
- 詳細を表示するには、[<count> tokens] をクリックして、プロンプト トークナイザを開きます。
- テキスト プロンプト内のトークン(各トークン ID の境界が異なる色でハイライト表示されている)を表示するには、[Token ID to text] をクリックします。メディア トークンはサポートされていません。
- トークン 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 の最大割り当ては、1 分あたり 3,000 リクエストです。
次のステップ
- チャット プロンプトをテストする方法を学習する。
- テキスト プロンプトのテスト方法を学習する。