Priority PayGo

優先従量課金制(Priority PayGo)は、プロビジョンド スループットの事前確約なしで、標準従量課金制よりも安定したパフォーマンスを提供する消費オプションです。

Priority PayGo を使用する場合、標準従量課金制よりも高い料金でトークン使用量に応じて課金されます。料金については、 Vertex AI の料金のページをご覧ください。

Priority PayGo の使用が適切なケース

Priority PayGo は、トラフィック パターンが変動する、または予測できないビジネス クリティカルなワークロードに最適です。次のようなユースケースがあります。

  • 顧客向けの仮想アシスタント
  • エージェント ワークフローとエージェント間のインタラクション
  • 研究シミュレーション

サポートされているモデルとロケーション

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

Priority PayGo を使用する

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

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

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

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

Priority 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

Priority PayGo を使用するように GenAI クライアントを初期化します。この手順を行うと、同じクライアントで Priority 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 。Priority 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
  }
}
  • generateContent メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。 ユーザーが認識するレイテンシを短縮するには、streamGenerateContent メソッドを使用して、生成時にレスポンスをストリーミングします。
  • マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます (例: gemini-2.0-flash)。このサンプルでは、他の モデルもサポートされている場合があります。

Priority PayGo のみを使用する

Priority 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

Priority PayGo を使用するように GenAI クライアントを初期化します。この手順を行うと、同じクライアントで Priority 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 。Priority 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
  }
}
  • generateContent メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。 ユーザーが認識するレイテンシを短縮するには、streamGenerateContent メソッドを使用して、生成時にレスポンスをストリーミングします。
  • マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます (例: gemini-2.0-flash)。このサンプルでは、他の モデルもサポートされている場合があります。

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

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

Python

レスポンスの traffic_type フィールドから、リクエストに Priority PayGo が使用されたかどうかを確認できます。リクエストが Priority 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

レスポンスの trafficType フィールドから、リクエストに Priority PayGo が使用されたかどうかを確認できます。リクエストが Priority 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% 増加します。

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

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

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

次のステップ