Flex PayGo

Le paiement à l'usage Flex est une option économique pour accéder aux modèles Gemini pour les charges de travail non critiques qui peuvent tolérer des temps de réponse plus longs et une limitation plus élevée. Le paiement à l'usage Flex offre une remise de 50 % par rapport au paiement à l'usage standard.

Quand utiliser le paiement à l'usage Flex ?

Le paiement à l'usage Flex est idéal pour les tâches synchrones, tolérantes à la latence et non critiques qui ne sont pas urgentes. Voici quelques exemples de cas d'utilisation :

  • Analyse hors connexion de fichiers texte, de documents, d'images, audio et vidéo
  • Évaluation de la qualité du modèle
  • Annotation et libellisation des données
  • Traduction de documents
  • Création d'un catalogue de produits

Modèles et emplacements compatibles

Les modèles Gemini en aperçu suivants sont compatibles avec le paiement à l'usage Flex uniquement dans le point de terminaison global. Le paiement à l'usage Flex n'est pas compatible avec les points de terminaison régionaux ni multirégionaux.

Limite de charge utile des requêtes

Les requêtes de paiement à l'usage Flex ont une limite de taille de charge utile totale de 20 Mo. Pour les charges utiles dépassant 20 Mo, fournissez plutôt un URI Cloud Storage.

Utiliser le paiement à l'usage Flex

Pour envoyer des requêtes à l'API Gemini à l'aide du paiement à l'usage Flex, vous devez inclure l'en-tête X-Vertex-AI-LLM-Shared-Request-Type dans votre requête. Vous pouvez utiliser le paiement à l'usage Flex de deux manières :

  • Utilisez le quota de débit provisionné (si disponible), puis utilisez le paiement à l'usage Flex.
  • Utilisez uniquement le paiement à l'usage Flex.

Les requêtes qui utilisent le paiement à l'usage Flex ont une latence prévue plus longue que le paiement à l'usage standard.

Vous pouvez définir le délai avant expiration de la requête sur un maximum de 30 minutes.

Utiliser le paiement à l'usage Flex tout en utilisant le débit provisionné par défaut

Pour utiliser tout quota de débit provisionné disponible avant d'utiliser le paiement à l'usage Flex, incluez l'en-tête X-Vertex-AI-LLM-Shared-Request-Type: flex dans vos requêtes, comme illustré dans les exemples suivants.

Python

Installer

pip install --upgrade google-genai

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Gen AI avec 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

Initialisez votre client GenAI pour utiliser le paiement à l'usage Flex. Une fois cette étape effectuée, vous n'aurez plus besoin d'apporter d'autres modifications à votre code pour interagir avec l'API Gemini à l'aide du paiement à l'usage Flex sur le même client.

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

Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.

Avant d'utiliser les données de requête, effectuez les remplacements suivants.

  • PROJECT_ID : Votre ID de projet.
  • MODEL_ID: ID du modèle pour lequel vous souhaitez initialiser le paiement à l'usage Flex.
  • PROMPT_TEXT : instructions textuelles à inclure dans le prompt. 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" }
    }
  }'

Vous devriez recevoir une réponse JSON semblable à la suivante.

{
  "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
  }
}
Notez les éléments suivants dans l'URL de cet exemple :
  • Utilisez la generateContent méthode pour demander que la réponse soit renvoyée une fois qu'elle a été entièrement générée. Pour réduire la perception de la latence auprès d'un public humain, affichez la réponse progressivement à mesure qu'elle est générée à l'aide de la méthode streamGenerateContent.
  • L'ID du modèle multimodal se trouve à la fin de l'URL avant la méthode (par exemple, gemini-2.5-flash). Cet exemple peut également s'appliquer à d'autres modèles.
  • Lorsque vous utilisez un point de terminaison d'API régional (par exemple, us-central1), la région de l'URL du point de terminaison détermine l'emplacement où la requête est traitée. Tout emplacement en conflit dans le chemin d'accès à la ressource est ignoré.

Utiliser uniquement le paiement à l'usage Flex

Pour utiliser uniquement le paiement à l'usage Flex, incluez les en-têtes X-Vertex-AI-LLM-Request-Type: shared et X-Vertex-AI-LLM-Shared-Request-Type: flex dans vos requêtes, comme illustré dans les exemples suivants.

Python

Installer

pip install --upgrade google-genai

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Gen AI avec 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

Initialisez votre client GenAI pour utiliser le paiement à l'usage Flex. Une fois cette étape effectuée, vous n'aurez plus besoin d'apporter d'autres modifications à votre code pour interagir avec l'API Gemini à l'aide du paiement à l'usage Flex sur le même client.

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

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : Votre ID de projet.
  • MODEL_ID: ID du modèle pour lequel vous souhaitez initialiser le paiement à l'usage Flex.
  • PROMPT_TEXT : instructions textuelles à inclure dans le prompt. 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" }
    }
  }'

Vous devriez recevoir une réponse JSON semblable à la suivante.

{
  "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
  }
}
Notez les éléments suivants dans l'URL de cet exemple :
  • Utilisez la generateContent méthode pour demander que la réponse soit renvoyée une fois qu'elle a été entièrement générée. Pour réduire la perception de la latence auprès d'un public humain, affichez la réponse progressivement à mesure qu'elle est générée à l'aide de la méthode streamGenerateContent.
  • L'ID du modèle multimodal se trouve à la fin de l'URL avant la méthode (par exemple, gemini-2.5-flash). Cet exemple peut également s'appliquer à d'autres modèles.
  • Lorsque vous utilisez un point de terminaison d'API régional (par exemple, us-central1), la région de l'URL du point de terminaison détermine l'emplacement où la requête est traitée. Tout emplacement en conflit dans le chemin d'accès à la ressource est ignoré.

Vérifier l'utilisation du paiement à l'usage Flex

Vous pouvez vérifier si une requête a utilisé le paiement à l'usage Flex à partir du type de trafic dans la réponse, comme illustré dans les exemples suivants.

Python

Vous pouvez vérifier si le paiement à l'usage Flex a été utilisé pour une requête à partir du champ traffic_type dans la réponse. Si votre requête a été traitée à l'aide du paiement à l'usage Flex, le champ traffic_type est défini sur 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

Vous pouvez vérifier si le paiement à l'usage Flex a été utilisé pour une requête à partir du champ trafficType dans la réponse. Si votre requête a été traitée à l'aide du paiement à l'usage Flex, le champ trafficType est défini sur 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
  }
}

Quota supplémentaire pour le paiement à l'usage Flex

En plus des quotas disponibles pour les requêtes de génération de contenu (y compris le quota de débit provisionné pour le trafic de débordement), les requêtes utilisant le paiement à l'usage Flex sont soumises au quota suivant :

Description RPM pour chaque modèle de base dans un projet
Quota pour chaque modèle de base dans les requêtes de projet utilisant le paiement à l'usage Flex 3000