CountTokens API を使用して、リクエストがモデルのコンテキスト ウィンドウを超えないようにし、課金対象の文字に基づいて潜在的な費用を見積もります。
CountTokens API では、Gemini API 推論リクエストと同じ contents
パラメータを使用できます。
サポートされているモデル:
モデル | コード |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-002 gemini-1.5-flash-001 gemini-1.5-flash-preview-0514 |
Gemini 1.5 Pro | gemini-1.5-pro-002 gemini-1.5-pro-001 gemini-1.5-pro-preview-0514 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-vision gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | gemini-1.0-pro gemini-1.0-pro-001 gemini-1.0-pro-002 |
Gemini Experimental | gemini-experimental |
制限事項:
gemini-1.0-pro-vision-001
と gemini-1.0-ultra-vision-001
は、動画入力に固定数のトークンを使用します。
構文の例
トークン数を計算するリクエストを送信する構文。
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:countTokens \ -d '{ "contents": [{ ... }], "system_instruction": { "role": "...", "parts": [{ ... }], "tools": [{ "function_declarations": [{ ... }] }], } }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.count_tokens([...])
パラメータ リスト
このクラスは、role
と parts
という 2 つの主要なプロパティで構成されています。role
プロパティはコンテンツを生成している個人を表し、parts
プロパティには複数の要素が含まれます。各要素はメッセージ内のデータ セグメントを表します。
パラメータ | |
---|---|
|
省略可: メッセージを作成するエンティティの ID。文字列を次のいずれかに設定します。
マルチターンではない会話の場合、このフィールドは空白のままにするか、未設定のままにできます。 |
|
1 つのメッセージを構成する順序付きのパーツのリスト。パーツによって 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: プロンプトに含める指示のテキスト。
- 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" ] } } ] }] }
リクエストを送信するには、次のいずれかのオプションを選択します。
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
NodeJS
Java
Go
メディア プロンプトからトークン数を取得する
この例では、さまざまなメディアタイプを使用するプロンプトのトークンをカウントします。
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: プロンプトに含める指示のテキスト。
- FILE_URI: プロンプトに含めるファイルの URI または URL。指定できる値は以下のとおりです。
- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
- HTTP URL: ファイルの URL は一般公開されている必要があります。リクエストごとに 1 つの動画ファイルと最大 10 個の画像ファイルを指定できます。音声ファイルとドキュメントのサイズは 15 MB 以下にする必要があります。
- YouTube 動画の URL: YouTube 動画は、Google Cloud コンソールのログインに使用したアカウントが所有しているか、公開されている必要があります。リクエストごとにサポートされる YouTube 動画の URL は 1 つだけです。
fileURI
を指定する場合は、ファイルのメディアタイプ(mimeType
)も指定する必要があります。 - 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 メソッドと URL:
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
NodeJS
Java
Go
次のステップ
- 詳細については、Gemini API をご覧ください。