Flex PayGo

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

Flex PayGo を使用する場合

Flex PayGo は、同期型でレイテンシに寛容な、時間的制約のない非クリティカルなタスクに最適です。ユースケースの例を以下に示します。

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

  • モデルの品質の評価

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

  • ドキュメント翻訳

  • 商品カタログを構築する

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

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

Flex PayGo を使用する

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

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

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

Flex PayGo を使用するリクエストは、Standard PayGo よりもレイテンシが長くなります。デフォルトのタイムアウトは 20 分です。timeout パラメータを使用して(ミリ秒単位で)オーバーライドできます。最大許容値は 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 を使用するように生成 AI クライアントを初期化します。この手順を完了すると、同じクライアントで 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" \  # Timeout in milliseconds
  -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.0-flash)。このサンプルでは、他のモデルもサポートされている場合があります。

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 を使用するように生成 AI クライアントを初期化します。この手順を完了すると、同じクライアントで 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" \  # Timeout in milliseconds
  -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.0-flash)。このサンプルでは、他のモデルもサポートされている場合があります。

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

次のステップ