CountTokens API

CountTokens API は、Gemini API にリクエストを送信する前に入力トークンの数を計算します。CountTokens API を使用して、リクエストがモデルのコンテキスト ウィンドウを超えないようにし、課金対象の文字に基づいて潜在的な費用を見積もります。

ユーザーは、Gemini API 推論リクエストで使用する contents パラメータと同じパラメータを送信できます。

サポートされているモデル:

  • Gemini 1.0 Pro
    • gemini-1.0-pro
    • gemini-1.0-pro-001
    • gemini-1.0-pro-002
  • Gemini 1.0 Pro Vision
    • gemini-1.0-pro-vision
    • gemini-1.0-pro-vision-001
  • Gemini 1.0 Ultra
    • gemini-1.0-ultra
    • gemini-1.0-ultra-001
  • Gemini 1.0 Ultra Vision
    • gemini-1.0-ultra-vision
    • gemini-1.0-ultra-vision-001
  • Gemini 1.5 Pro
    • gemini-1.5-pro-preview-0409
  • Gemini Experimental
    • gemini-experimental

制限事項:

  • gemini-1.0-pro-vision-001gemini-1.0-ultra-vision-001 は、動画入力に固定数のトークンを使用します

構文

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • MODEL_ID = MODEL_ID

curl

https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:countTokens \
  -d '{
    "contents": [{
      ...
    }]
  }'

Python

gemini_model = GenerativeModel(MODEL_ID)
model_response = gemini_model.count_tokens([...])

パラメータ リスト

このクラスは、roleparts という 2 つの主要なプロパティで構成されています。role プロパティはコンテンツを生成している個人を表し、parts プロパティには複数の要素が含まれます。各要素はメッセージ内のデータ セグメントを表します。

パラメータ

role

省略可: string

メッセージを作成するエンティティの ID。文字列を次のいずれかに設定します。

  • user: メッセージが実際のユーザーから送信されたことを示します。たとえば、ユーザーが生成したメッセージなどです。
  • model: メッセージがモデルによって生成されたことを示します。

model 値は、マルチターンの会話中にモデルからのメッセージを会話に挿入するために使用されます。

マルチターンではない会話の場合、このフィールドは空白のままにするか、未設定のままにできます。

parts

part

1 つのメッセージを構成する順序付きのパーツのリスト。パーツによって IANA MIME タイプが異なる場合があります。

Part

パラメータ

text

省略可: string

テキスト プロンプトまたはコード スニペット。

inline_data

省略可: blob

未加工バイトのデータがインラインに含まれます。

file_data

省略可: FileData

ファイルに保存されたデータ。

Blob

パラメータ

mime_type

string

データの IANA MIME タイプ

data

bytes

元のバイト。

FileData

パラメータ

mime_type

string

データの IANA MIME タイプ

file_uri

string

データを格納するファイルの Cloud Storage URI

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • MODEL_ID = MODEL_ID

基本的なユースケース

この例では、単一のテキスト プロンプトを使用した使用方法を示します。

curl

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": "Write a story about a magic backpack."
      }]
    }]
  }'

Python

import vertexai
from vertexai.generative_models import GenerativeModel

vertexai.init(project=PROJECT_ID, location=REGION)

gemini_model = GenerativeModel(MODEL_ID)
model_response = gemini_model.count_tokens("Write a story about a magic backpack.")

print(model_response)

上級者向けのユースケース

この例では、1 つのプロンプトでメディアを使用する方法を示しています。

curl

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": "Provide a description of the video."
        }
      ]
    }]
  }'

Python

import vertexai
from vertexai.generative_models import GenerativeModel, Part

vertexai.init(project=PROJECT_ID, location=REGION)

contents = [
    Part.from_uri(
        "gs://cloud-samples-data/generative-ai/video/pixel8.mp4", mime_type="video/mp4"
    ),
    "Provide a description of the video.",
]

gemini_model = GenerativeModel(MODEL_ID)
model_response = gemini_model.count_tokens(contents)

print(model_response)

さらに詳しい情報

詳細なドキュメントについては、以下をご覧ください。