Flex 従量課金制(Flex PayGo)は、レスポンス時間が長くてもスロットリングが高くても許容できる、重要度の低いワークロードで Gemini モデルにアクセスするための費用対効果の高いオプションです。Flex PayGo は、Standard PayGo と比較して 50% の割引を提供します。
Flex PayGo を使用する場合
Flex PayGo は、時間的制約のない、レイテンシを許容できる、重要度の低い同期タスクに最適です。ユースケースの例を次に示します。
- テキスト、ドキュメント、画像、音声、動画ファイルのオフライン分析
- モデルの品質の評価
- データのアノテーションとラベル付け
- ドキュメント翻訳
- 商品カタログの作成
サポートされているモデルとロケーション
次のプレビュー版
Gemini モデルは、global
エンドポイントでのみ Flex PayGo をサポートしています。Flex PayGo は、リージョン エンドポイントまたはマルチリージョン エンドポイントをサポートしていません。
リクエスト ペイロードの上限
Flex PayGo リクエストのペイロード サイズの合計上限は 20 MB です。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 を使用するリクエストは、Standard PayGo よりも予想されるレイテンシが長くなります。
リクエストのタイムアウトは最大 30 分に設定できます。
PT をデフォルトとして使用しながら Flex PayGo を使用する
Flex PayGo を使用する前に利用可能な PT 割り当てを利用するには、次のサンプルに示すように、リクエストにヘッダー 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 。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 。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 の追加割り当て
コンテンツ生成リクエスト(スピルオーバー トラフィックの PT 割り当てを含む)の利用可能な割り当てに加えて、Flex PayGo を使用するリクエストには次の割り当てが適用されます。
| 説明 | プロジェクト内の各ベースモデルの QPM |
|---|---|
| Flex PayGo を使用するリクエストのプロジェクト内の各ベースモデルの割り当て | 3000 |