Flex 従量課金制(Flex PayGo)は、レスポンス時間が長くてもスロットリングが高くても許容できる、重要度の低いワークロードで Gemini モデルにアクセスするための費用対効果の高いオプションです。 Flex PayGo は、標準の従量課金制と比較して 50% の割引を提供します。
Flex PayGo を使用する場合
Flex PayGo は、同期型でレイテンシが許容され、時間的制約のない重要度の低いタスクに最適です。ユースケースの例を次に示します。
テキスト、ドキュメント、画像、音声、動画ファイルのオフライン分析
モデル品質の評価
データのアノテーションとラベル付け
ドキュメント翻訳
商品カタログの作成
サポートされているモデルとロケーション
次のプレビュー版
Gemini モデルは、global
エンドポイントでのみ Flex PayGo をサポートしています。Flex PayGo は、リージョン エンドポイントまたはマルチリージョン エンドポイントをサポートしていません。
- Gemini 3.1 Flash-Lite
- Gemini 3.1 Flash Image
- Gemini 3.1 Pro
- Gemini 3 Flash
- Gemini 3 Pro
- Gemini 3 Pro Image
リクエスト ペイロードの上限
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
}
}
-
generateContentメソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。 ユーザーが認識するレイテンシを短縮するには、streamGenerateContentメソッドを使用して、生成時にレスポンスをストリーミングします。 - マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます
(例:
gemini-2.5-flash)。このサンプルでは、他の モデルもサポートされている場合があります。 - リージョン API エンドポイント(
us-central1など)を使用する場合、リクエストの処理場所はエンドポイント URL のリージョンによって決まります。リソースパス内の競合するロケーションは無視されます。
Flex PayGo のみを使用する
Flex PayGo のみを使用するには、次のサンプルに示すように、リクエストにヘッダー X-Vertex-AI-LLM-Request-Type: shared と 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-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
}
}
-
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 |
次のステップ
Google Cloud の割り当て
Google Cloud プロジェクトで使用できるリソースの量を Google Cloud がどのように制限しているか、また、ハードウェア、ソフトウェア、ネットワーク コンポーネントなど、さまざまなリソースタイプに割り当てがどのように適用されるかについて説明します。