従量課金制(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
}
}
generateContentメソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContentメソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-2.0-flash)。このサンプルでは、他のモデルもサポートされている場合があります。
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 を使用するように生成 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
}
}
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 |
次のステップ
- Vertex AI の割り当てと上限の詳細について、Vertex AI の割り当てと上限を確認する。
- Google Cloud の割り当てとシステムの上限の詳細を確認する。Cloud Quotas のドキュメントをご覧ください。