Flex PayGo

Flex pay-as-you-go (Flex PayGo) adalah opsi hemat biaya untuk mengakses model Gemini untuk beban kerja non-kritis yang dapat mentoleransi waktu respons yang lebih lama dan pembatasan yang lebih tinggi. Flex PayGo menawarkan diskon 50% dibandingkan dengan Standard PayGo.

Kapan harus menggunakan Flex PayGo

Flex PayGo ideal untuk tugas sinkron, toleran terhadap latensi, dan tidak penting yang tidak sensitif terhadap waktu. Berikut adalah contoh kasus penggunaan:

  • Analisis offline file teks, dokumen, gambar, audio, dan video

  • Evaluasi kualitas model

  • Anotasi dan pelabelan data

  • Terjemahan dokumen

  • Membangun katalog produk

Model dan lokasi yang didukung

Model Gemini berikut dalam pratinjau mendukung Flex PayGo di endpoint global saja. Flex PayGo tidak mendukung endpoint regional atau multi-regional.

Menggunakan Flex PayGo

Untuk mengirim permintaan ke Gemini API menggunakan Flex PayGo, Anda harus menyertakan header X-Vertex-AI-LLM-Shared-Request-Type dalam permintaan. Anda dapat menggunakan Flex PayGo dengan dua cara:

  • Gunakan kuota Throughput yang Disediakan (jika tersedia), lalu gunakan Flex PayGo.

  • Hanya gunakan Flex PayGo.

Perhatikan bahwa permintaan yang menggunakan Flex PayGo memiliki latensi yang lebih lama daripada Standard PayGo. Waktu tunggu default adalah 20 menit, yang dapat Anda ganti (dalam milidetik) menggunakan parameter timeout. Nilai maksimum yang diizinkan adalah 30 menit.

Menggunakan Flex PayGo saat menggunakan Throughput yang Disediakan sebagai default

Untuk memanfaatkan kuota Throughput yang Disediakan yang tersedia sebelum menggunakan Flex PayGo, sertakan header X-Vertex-AI-LLM-Shared-Request-Type: flex dalam permintaan Anda, seperti yang ditunjukkan dalam contoh berikut.

Python

Instal

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

Lakukan inisialisasi klien GenAI Anda untuk menggunakan Flex PayGo. Setelah melakukan langkah ini, Anda tidak perlu melakukan penyesuaian lebih lanjut pada kode untuk berinteraksi dengan Gemini API menggunakan Flex PayGo di klien yang sama.

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

Setelah menyiapkan lingkungan, Anda dapat menggunakan REST untuk menguji perintah teks. Contoh berikut mengirim permintaan ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model yang ingin Anda gunakan untuk menginisialisasi Flex PayGo. Untuk mengetahui daftar model yang mendukung Flex PayGo, lihat Versi model.
  • PROMPT_TEXT: Petunjuk teks yang akan disertakan dalam perintah. 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" }
    }
  }'

Anda akan menerima respons JSON yang mirip dengan berikut ini.

{
  "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
  }
}
Perhatikan hal berikut di URL untuk sampel ini:
  • Gunakan metode generateContent untuk meminta agar respons ditampilkan setelah dibuat sepenuhnya. Untuk mengurangi persepsi latensi bagi audiens manusia, streaming respons saat respons dibuat menggunakan metode streamGenerateContent.
  • ID model multimodal terletak di akhir URL sebelum metode (misalnya, gemini-2.0-flash). Contoh ini mungkin mendukung model lain juga.

Hanya gunakan Flex PayGo

Untuk hanya menggunakan Flex PayGo, sertakan header X-Vertex-AI-LLM-Request-Type: shared dan X-Vertex-AI-LLM-Shared-Request-Type: flex dalam permintaan Anda, seperti yang ditunjukkan dalam contoh berikut.

Python

Instal

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

Lakukan inisialisasi klien GenAI Anda untuk menggunakan Flex PayGo. Setelah melakukan langkah ini, Anda tidak perlu melakukan penyesuaian lebih lanjut pada kode untuk berinteraksi dengan Gemini API menggunakan Flex PayGo di klien yang sama.

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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model yang ingin Anda gunakan untuk menginisialisasi Flex PayGo. Untuk mengetahui daftar model yang mendukung Flex PayGo, lihat Versi model.
  • PROMPT_TEXT: Petunjuk teks yang akan disertakan dalam perintah. 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" }
    }
  }'

Anda akan menerima respons JSON yang mirip dengan berikut ini.

{
  "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
  }
}
Perhatikan hal berikut di URL untuk sampel ini:
  • Gunakan metode generateContent untuk meminta agar respons ditampilkan setelah dibuat sepenuhnya. Untuk mengurangi persepsi latensi bagi audiens manusia, streaming respons saat respons dibuat menggunakan metode streamGenerateContent.
  • ID model multimodal terletak di akhir URL sebelum metode (misalnya, gemini-2.0-flash). Contoh ini mungkin mendukung model lain juga.

Memverifikasi penggunaan Flex PayGo

Anda dapat memverifikasi apakah permintaan menggunakan Flex PayGo dari jenis traffic dalam respons, seperti yang ditunjukkan dalam contoh berikut.

Python

Anda dapat memverifikasi apakah Flex PayGo digunakan untuk permintaan dari kolom traffic_type dalam respons. Jika permintaan Anda diproses menggunakan Flex PayGo, kolom traffic_type ditetapkan ke 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

Anda dapat memverifikasi apakah Flex PayGo digunakan untuk permintaan dari kolom trafficType dalam respons. Jika permintaan Anda diproses menggunakan Flex PayGo, kolom trafficType ditetapkan ke 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
  }
}

Kuota tambahan untuk Flex PayGo

Selain kuota yang tersedia untuk permintaan pembuatan konten (termasuk kuota Throughput yang Disediakan untuk traffic spillover), permintaan yang menggunakan Flex PayGo tunduk pada kuota berikut:

Deskripsi QPM untuk setiap model dasar dalam project
Kuota untuk setiap permintaan project model dasar yang menggunakan Flex PayGo 3000

Langkah berikutnya