Gemini モデルのトークン数をカウントする

Gemini モデルは、入力と出力を トークン という単位で処理します。

トークンは、z などの単一の文字、cat などの単語全体にすることができます。長い単語は複数のトークンに分割されます。モデルで使用されるすべてのトークンのセットを語彙と呼び、テキストをトークンに分割するプロセスをトークン化と呼びます。

Gemini モデルの場合、1 トークンは約 4 文字に相当します。 100 トークンは約 60 ~ 80 語(英語)に相当します。

各モデルには、プロンプトとレスポンスで処理できるトークンの 最大数 があります。プロンプトのトークン数がわかれば、この上限を超えているかどうかを確認できます。また、リクエストの費用は入力トークンと出力トークンの数によって決まるため、トークンのカウント方法を知っておくと便利です。

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

  • gemini-3.1-pro-preview
  • gemini-3-flash-preview
  • gemini-3.1-flash-lite-preview
  • gemini-3-pro-image-preview
  • gemini-3.1-flash-image-preview
  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite
  • gemini-2.0-flash-001(自動更新されるエイリアス gemini-2.0-flash
  • gemini-2.0-flash-lite-001(自動更新されるエイリアス gemini-2.0-flash-lite

トークンをカウントするオプション

Gemini API のすべての入力と出力はトークン化されます。これには、テキスト、画像 ファイル、その他のテキスト以外のモダリティが含まれます。トークンをカウントするオプションは次のとおりです。

(モデルに送信する前に)リクエストのトークン数のみを確認します。
モデルに送信する前に、リクエストの入力で countTokens を呼び出します。これにより、次のものが返されます。
  • total_tokens: 入力のみのトークン数
リクエストとレスポンスの両方のトークン数を確認します。
レスポンス オブジェクトの usageMetadata 属性にアクセスします。これには次のものが含まれます。
  • prompt_token_count: 入力のみのトークン数
  • candidates_token_count: 出力のみのトークン数 (思考トークンは含まれません)
  • thoughts_token_count: レスポンスの生成に使用された思考トークンの数
  • total_token_count: 入力と出力の両方のトークンの合計数(思考トークンを含む)

出力のストリーミング時、usageMetadata 属性はストリームの最後のチャンクにのみ 表示されます。中間チャンクの場合は `nil` です。nil

上記のオプションについては、次の点に注意してください。

  • 入力画像の数や、動画または音声の入力ファイルの秒数はカウントされません。 ただし、これらのモダリティのトークン数は、これらの値と相関します。
  • 入力トークン数には、プロンプト(テキストと入力ファイル)に加えて、システム命令とツールが含まれます。
  • 出力トークン数には思考トークンは含まれません。思考トークンは別のフィールドで提供されます。
  • 各リクエスト タイプに固有の 追加情報 については、このページの後半をご覧ください。
  • Gemini Live API モデルは サポートしていません countTokens。また、Firebase AI LogicまだusageMetadata 属性を Live API モデルからのレスポンスでサポートしていませんが、まもなくサポートされる予定です。

これらのオプションの料金

  • countTokens の呼び出し: countTokens(Count Tokens API)の呼び出しに料金はかかりません。Count Tokens API の最大割り当ては、1 分あたり 3,000 リクエスト(RPM)です。

  • usageMetadata 属性の使用: この属性は常にレスポンスの一部として返され、トークンや料金は発生しません。

その他の情報

特定の種類のリクエストを処理する際の追加情報は次のとおりです。

テキスト入力トークンをカウントする

追加情報はありません。

マルチターン(チャット)トークンをカウントする

チャットを使用しているときに countTokens を呼び出す場合は、次の点に注意してください。

  • チャット履歴で countTokens を呼び出すと、チャットの両方のロールの合計トークン数(total_tokens)が返されます。
  • 次の会話のターンがどのくらいの大きさになるかを確認するには、countTokens を呼び出すときに履歴に追加する必要があります。

マルチモーダル入力トークンをカウントする

マルチモーダル入力でトークンをカウントする場合は、次の点に注意してください。

  • 必要に応じて、テキストとファイルで個別に countTokens を呼び出すことができます。
  • どちらのトークン カウント オプションでも、ファイルをインライン データとして提供する場合でも、URL を使用する場合でも、同じトークン数が返されます。

画像入力ファイル

画像入力ファイルは、サイズに基づいてトークンに変換されます。

  • 両方のサイズが 384 ピクセル以下の画像入力: 各画像は 258 トークンとしてカウントされます。
  • 1 つ以上のサイズが大きい画像入力: 各画像は必要に応じて 768x768 ピクセルのタイルに切り抜かれ、スケーリングされます。その後、各タイルは 258 トークンとしてカウントされます。

動画と音声の入力ファイル

動画と音声の入力ファイルは、次の固定レートでトークンに変換されます。

  • 動画: 1 秒あたり 263 トークン
  • 音声: 1 秒あたり 32 トークン

ドキュメント(PDF など)の入力ファイル

PDF 入力ファイルは画像として扱われるため、PDF の各ページは画像と同じ方法でトークン化されます。