Flex PayGo

Flex 従量課金制(Flex PayGo)は、レスポンス時間が長くてもスロットリングが高くても許容できる、重要度の低いワークロードで Gemini モデルにアクセスするための費用対効果の高いオプションです。 Flex PayGo は、標準の従量課金制と比較して 50% の割引を提供します。

Flex PayGo を使用する場合

Flex PayGo は、同期型でレイテンシが許容され、時間的制約のない重要度の低いタスクに最適です。ユースケースの例を次に示します。

  • テキスト、ドキュメント、画像、音声、動画ファイルのオフライン分析

  • モデル品質の評価

  • データのアノテーションとラベル付け

  • ドキュメント翻訳

  • 商品カタログの作成

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

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

リクエスト ペイロードの上限

Flex PayGo リクエストでは、ペイロードがリクエスト本文に直接含まれるリクエストの場合、ペイロードの合計サイズの上限は 20 MB です。サイズの大きいファイルを処理するには、リクエストで Cloud Storage URI を指定します。

Flex PayGo を使用する

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

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

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

Flex PayGo を使用するリクエストは、標準の従量課金制よりも予想されるレイテンシが長くなります。

リクエスト タイムアウトは最大 30 分に設定できます。

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

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

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

Flex PayGo を使用するように GenAI クライアントを初期化します。この手順を行うと、同じクライアントで Flex 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": "flex"
      },
    # timeout = 600000  # Timeout in milliseconds
  )
)

REST

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

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

  • PROJECT_ID: 実際のプロジェクト ID
  • MODEL_ID: Flex PayGo を初期化するモデルのモデル ID 。Flex 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-Server-Timeout: 600" \
  -H "X-Vertex-AI-LLM-Shared-Request-Type: flex" \
  "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_FLEX",
    "thoughtsTokenCount": 1054
  }
}
このサンプルの URL では、次の点に注意してください。
  • generateContent メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。 ユーザーが認識するレイテンシを短縮するには、streamGenerateContent メソッドを使用して、生成時にレスポンスをストリーミングします。
  • マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます (例: gemini-2.5-flash)。このサンプルでは、他の モデルもサポートされている場合があります。
  • リージョン API エンドポイント(us-central1 など)を使用する場合、リクエストの処理場所はエンドポイント URL のリージョンによって決まります。リソースパス内の競合するロケーションは無視されます。

Flex PayGo のみを使用する

Flex PayGo のみを使用するには、次のサンプルに示すように、リクエストにヘッダー X-Vertex-AI-LLM-Request-Type: sharedX-Vertex-AI-LLM-Shared-Request-Type: flex を含めます。

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

Flex PayGo を使用するように GenAI クライアントを初期化します。この手順を行うと、同じクライアントで Flex 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": "flex"
      },
    # timeout = 600000  # Timeout in milliseconds
  )
)

REST

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

  • PROJECT_ID: 実際のプロジェクト ID
  • MODEL_ID: Flex PayGo を初期化するモデルのモデル ID 。Flex 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-Server-Timeout: 600" \
  -H "X-Vertex-AI-LLM-Request-Type: shared" \
  -H "X-Vertex-AI-LLM-Shared-Request-Type: flex" \
  "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_FLEX",
    "thoughtsTokenCount": 1054
  }
}
このサンプルの URL では、次の点に注意してください。
  • generateContent メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。 ユーザーが認識するレイテンシを短縮するには、streamGenerateContent メソッドを使用して、生成時にレスポンスをストリーミングします。
  • マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます (例: gemini-2.5-flash)。このサンプルでは、他の モデルもサポートされている場合があります。
  • リージョン API エンドポイント(us-central1 など)を使用する場合、リクエストの処理場所はエンドポイント URL のリージョンによって決まります。リソースパス内の競合するロケーションは無視されます。

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

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

Python

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

sdk_http_response=HttpResponse(
  headers=
) candidates=[Candidate(
  avg_logprobs=-0.539712212302468,
  content=Content(
    parts=[
      Part(
        text="""Response to sample request.
        """
      ),
    ],
    role='model'
  ),
  finish_reason=<FinishReason.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=<MediaModality.TEXT: 'TEXT'>,
      token_count=1408
    ),
  ],
  prompt_token_count=5,
  prompt_tokens_details=[
    ModalityTokenCount(
      modality=<MediaModality.TEXT: 'TEXT'>,
      token_count=5
    ),
  ],
  thoughts_token_count=1356,
  total_token_count=2769,
  traffic_type=<TrafficType.ON_DEMAND_FLEX: 'ON_DEMAND_FLEX'>
) automatic_function_calling_history=[] parsed=None

REST

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

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

Flex PayGo の追加割り当て

コンテンツ生成リクエストの利用可能な割り当て(スピルオーバー トラフィックのプロビジョンド スループットの割り当てを含む)に加えて、Flex PayGo を使用するリクエストには次の割り当てが適用されます。

説明 プロジェクト内の各ベースモデルの QPM
Flex PayGo を使用するリクエストのプロジェクト内の各ベースモデルの割り当て 3000

次のステップ

リソース

Agent Platform に固有の割り当てと上限。

リソース

プロダクト固有の制限を除き、Agent Platform プラットフォームに関連する割り当てと上限。

概要

Google Cloud プロジェクトで使用できるリソースの量を Google Cloud がどのように制限しているか、また、ハードウェア、ソフトウェア、ネットワーク コンポーネントなど、さまざまなリソースタイプに割り当てがどのように適用されるかについて説明します。