彈性即付即用

彈性即付即用 (彈性 PayGo) 方案是經濟實惠的選擇,適合用於非重要工作負載,可容許較長的回覆時間和較高的節流。與標準隨用隨付方案相比,彈性隨用隨付方案可享 50% 折扣。

何時使用 Flex PayGo

Flex PayGo 非常適合用於非緊急的同步作業,這類作業對延遲的容忍度較高,以下是範例用途:

  • 離線分析文字、文件、圖片、音訊和影片檔案

  • 評估模型品質

  • 資料註解和標籤

  • 文件翻譯

  • 建立產品目錄

支援的機型和地點

下列 搶先版 Gemini 模型僅支援 global 端點的彈性隨用隨付方案。Flex PayGo 不支援區域或多區域端點。

使用 Flex PayGo

如要使用彈性隨用隨付方案傳送要求至 Gemini API,您必須在要求中加入 X-Vertex-AI-LLM-Shared-Request-Type 標頭。你可以透過下列兩種方式使用 Flex PayGo:

  • 使用佈建輸送量配額 (如有),然後使用彈性即付即用。

  • 僅使用 Flex PayGo。

請注意,使用 Flex PayGo 的要求延遲時間會比 Standard PayGo 長。預設逾時時間為 20 分鐘,您可以使用 timeout 參數 (以毫秒為單位) 覆寫這項設定。最長為 30 分鐘。

使用佈建輸送量做為預設值時,請使用彈性隨用隨付方案

如要在使用彈性隨用隨付方案前,先用完所有可用的佈建輸送量配額,請在要求中加入 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

初始化生成式 AI 用戶端,即可使用 Flex PayGo。完成這個步驟後,您就不必再調整程式碼,即可在同一個用戶端上,使用 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" \  # 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 位於網址尾端,方法之前 (例如 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

初始化生成式 AI 用戶端,即可使用 Flex PayGo。完成這個步驟後,您就不必再調整程式碼,即可在同一個用戶端上,使用 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" \  # 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 位於網址尾端,方法之前 (例如 gemini-2.0-flash)。這個範例也可能支援其他模型。

驗證彈性隨用隨付方案的使用情形

如要確認要求是否使用彈性隨用隨付方案,請查看回應中的流量類型,如下列範例所示。

Python

您可以透過回應中的 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

您可以透過回應中的 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
  }
}

彈性隨用隨付方案的額外配額

除了內容生成要求適用的配額 (包括溢出流量的佈建輸送量配額),使用彈性隨用隨付方案的要求也適用下列配額:

說明 專案中每個基礎模型的 QPM
專案中每個基礎模型的要求配額 (使用彈性隨用隨付方案) 3000

後續步驟