Priority PayGo

優先従量課金制(優先 PayGo)は、プロビジョンド スループットの事前コミットメントなしで、標準 PayGo よりも一貫したパフォーマンスを提供する使用量オプションです。

Priority PayGo を使用すると、Standard PayGo よりも高い料金でトークン使用量ごとに課金されます。料金については、Vertex AI の料金ページをご覧ください。

優先 PayGo を使用する場合

Priority PayGo は、トラフィック パターンが変動する、または予測不可能なレイテンシの影響を受けやすい重要なワークロードに最適です。ユースケースの例を次に示します。

  • 顧客向けの仮想アシスタント

  • レイテンシの影響を受けやすいドキュメントとデータの処理

  • エージェント ワークフローとエージェント間のインタラクション

  • 研究シミュレーション

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

次のモデルは、global エンドポイントでのみ優先 PayGo をサポートしています。Priority PayGo は、リージョン エンドポイントまたはマルチリージョン エンドポイントをサポートしていません。

Priority PayGo を使用する

Priority PayGo を使用して Vertex AI の Gemini API にリクエストを送信するには、リクエストに X-Vertex-AI-LLM-Shared-Request-Type ヘッダーを含める必要があります。Priority PayGo は次の 2 つの方法で使用できます。

  • プロビジョンド スループットの割り当てを使用し(利用可能な場合)、優先 PayGo にスピルオーバーします。

  • Priority PayGo のみを使用します。

プロビジョンド スループットをデフォルトとして使用しながら、優先 PayGo を使用する

優先 PayGo を使用する前に使用可能なプロビジョニングされたスループットの割り当てを利用するには、次の例に示すように、リクエストにヘッダー X-Vertex-AI-LLM-Shared-Request-Type: priority を含めます。

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

優先 PayGo を使用するように生成 AI クライアントを初期化します。この手順を行うと、同じクライアントで優先 PayGo を使用して Gemini API とやり取りするために、コードをさらに調整する必要はありません。

from google import genai
from google.genai.types import HttpOptions
client = genai.Client(
  vertexai=True, project='your_project_id', location='global',
  http_options=HttpOptions(
    api_version="v1",
      headers={
        "X-Vertex-AI-LLM-Shared-Request-Type": "priority"
      },
  )
)

REST

環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID
  • MODEL_ID: Priority PayGo を初期化するモデルのモデル ID。優先 PayGo をサポートするモデルの一覧については、モデルのバージョンをご覧ください。
  • PROMPT_TEXT: プロンプトに含める指示のテキスト。 JSON
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "X-Vertex-AI-LLM-Shared-Request-Type: priority" \
  "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent" -d \
  $'{
      "contents": {
        "role": "model",
        "parts": { "text": "PROMPT_TEXT" }
    }
  }'

次のような JSON レスポンスが返されます。

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "Response to sample request."
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 3,
    "candidatesTokenCount": 900,
    "totalTokenCount": 1957,
    "trafficType": "ON_DEMAND_PRIORITY",
    "thoughtsTokenCount": 1054
  }
}
このサンプルの URL にある次の点に注意してください。
  • generateContent メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent メソッドを使用して、生成時にレスポンスをストリーミングします。
  • マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例: gemini-2.0-flash)。このサンプルでは、他のモデルもサポートされている場合があります。

Priority PayGo のみを使用する

優先 PayGo のみを使用するには、次の例に示すように、リクエストにヘッダー X-Vertex-AI-LLM-Request-Type: sharedX-Vertex-AI-LLM-Shared-Request-Type: priority を含めます。

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

優先 PayGo を使用するように生成 AI クライアントを初期化します。この手順を行うと、同じクライアントで優先 PayGo を使用して Gemini API とやり取りするために、コードをさらに調整する必要はありません。

from google import genai
from google.genai.types import HttpOptions
client = genai.Client(
  vertexai=True, project='your_project_id', location='global',
  http_options=HttpOptions(
    api_version="v1",
      headers={
        "X-Vertex-AI-LLM-Request-Type": "shared",
        "X-Vertex-AI-LLM-Shared-Request-Type": "priority"
      },
  )
)

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID
  • MODEL_ID: Priority PayGo を初期化するモデルのモデル ID。優先 PayGo をサポートするモデルの一覧については、モデルのバージョンをご覧ください。
  • PROMPT_TEXT: プロンプトに含める指示のテキスト。 JSON
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "X-Vertex-AI-LLM-Request-Type: shared" \
  -H "X-Vertex-AI-LLM-Shared-Request-Type: priority" \
  "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent" -d \
  $'{
      "contents": {
        "role": "model",
        "parts": { "text": "PROMPT_TEXT" }
    }
  }'

次のような JSON レスポンスが返されます。

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "Response to sample request."
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 3,
    "candidatesTokenCount": 900,
    "totalTokenCount": 1957,
    "trafficType": "ON_DEMAND_PRIORITY",
    "thoughtsTokenCount": 1054
  }
}
このサンプルの URL にある次の点に注意してください。
  • generateContent メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent メソッドを使用して、生成時にレスポンスをストリーミングします。
  • マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例: gemini-2.0-flash)。このサンプルでは、他のモデルもサポートされている場合があります。

Priority PayGo の使用状況を確認する

次の例に示すように、レスポンスのトラフィック タイプから、リクエストが優先 PayGo を使用したかどうかを確認できます。

Python

リクエストで優先 PayGo が使用されたかどうかは、レスポンスの traffic_type フィールドで確認できます。リクエストが優先 PayGo を使用して処理された場合、traffic_type フィールドは ON_DEMAND_PRIORITY に設定されます。

sdk_http_response=HttpResponse(
  headers=
) candidates=[Candidate(
  avg_logprobs=-0.539712212302468,
  content=Content(
    parts=[
      Part(
        text="""Response to sample request.
        """
      ),
    ],
    role='model'
  ),
  finish_reason=nishReason.STOP: 'STOP'>
)] create_time=datetime.datetime(2025, 12, 3, 20, 32, 55, 916498, tzinfo=TzInfo(0)) model_version='gemini-2.5-flash' prompt_feedback=None response_id='response_id' usage_metadata=GenerateContentResponseUsageMetadata(
  candidates_token_count=1408,
  candidates_tokens_details=[
    ModalityTokenCount(
      modality=ty.TEXT: 'TEXT'>,
      token_count=1408
    ),
  ],
  prompt_token_count=5,
  prompt_tokens_details=[
    ModalityTokenCount(
      modality=ty.TEXT: 'TEXT'>,
      token_count=5
    ),
  ],
  thoughts_token_count=1356,
  total_token_count=2769,
  traffic_type=fficType.ON_DEMAND_PRIORITY: 'ON_DEMAND_PRIORITY'>
) automatic_function_calling_history=[] parsed=None

REST

リクエストで優先 PayGo が使用されたかどうかは、レスポンスの trafficType フィールドで確認できます。リクエストが優先 PayGo を使用して処理された場合、trafficType フィールドは ON_DEMAND_PRIORITY に設定されます。

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "Response to sample request."
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 3,
    "candidatesTokenCount": 900,
    "totalTokenCount": 1957,
    "trafficType": "ON_DEMAND_PRIORITY",
    "thoughtsTokenCount": 1054
  }
}

ランプの上限

Priority PayGo では、ランプアップの上限が組織レベルで設定されます。ランプアップの上限は、予測可能で一貫したパフォーマンスを実現するのに役立ちます。上限の初期値はモデルによって異なります。

  • Gemini Flash モデルと Flash-Lite モデル: 400 万個のトークン/分。
  • Gemini Pro モデル: 100 万トークン/分。

ランプアップの上限は、使用時間が 10 分継続するごとに 50% 増加します。

リクエストがランプアップの上限を超え、トラフィックの負荷が高いためにシステムが容量を超えている場合、リクエストは Standard PayGo にダウングレードされ、Standard PayGo の料金で課金されます。

ダウングレードを最小限に抑えるには、使用量を段階的にスケーリングして、上限内に収めます。それでもパフォーマンスの改善が必要な場合は、追加のプロビジョンド スループット割り当ての購入を検討してください。

リクエストがレスポンスからダウングレードされたかどうかを確認できます。スタンダード従量課金にダウングレードされたリクエストの場合、トラフィック タイプは ON_DEMAND に設定されます。詳細については、優先 PayGo の使用状況を確認するをご覧ください。

次のステップ