Usa la capacidad de procesamiento aprovisionada

En esta página, se explica cómo controlar los excedentes o omitir la capacidad de procesamiento aprovisionada, y cómo supervisar el uso.

Controla los excedentes o omite la capacidad de procesamiento aprovisionada

Usa la API para controlar los excedentes cuando superes la capacidad de procesamiento que compraste o para omitir la capacidad de procesamiento aprovisionada por solicitud.

Lee cada opción para determinar qué debes hacer para cumplir con tu caso de uso.

Comportamiento predeterminado

Si superas el importe de capacidad de procesamiento que compraste, los excedentes se facturan según demanda con la tarifa de pago por uso. Una vez que tu pedido de capacidad de procesamiento aprovisionada esté activo, el comportamiento predeterminado se realizará automáticamente. No es necesario que cambies tu código para comenzar a consumir tu pedido.

Usa solo la capacidad de procesamiento aprovisionada

Si administras los costos evitando los cargos bajo demanda, usa solo la capacidad de procesamiento aprovisionada. Las solicitudes que excedan el importe del pedido de capacidad de procesamiento aprovisionada muestran un error 429.

Cuando envíes solicitudes a la API, establece el encabezado HTTP X-Vertex-AI-LLM-Request-Type en dedicated.

Usar solo el pago por uso

Esto también se conoce como uso a pedido. Las solicitudes omiten el pedido de capacidad de procesamiento aprovisionada y se envían directamente al pago por uso. Esto puede ser útil para experimentos o aplicaciones que están en desarrollo.

Cuando envíes solicitudes a la API, establece el encabezado HTTP X-Vertex-AI-LLM-Request-Type en shared.

Ejemplo

Gen AI SDK for Python

Obtén información para instalar o actualizar Gen AI SDK for Python.

Para obtener más información, consulta la documentación de referencia del SDK.

Establece variables de entorno para usar el SDK de Gen AI con 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=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True


from google import genai
from google.genai.types import HttpOptions

client = genai.Client(
    http_options=HttpOptions(
        api_version="v1",
        headers={
            # Options:
            # - "dedicated": Use Provisioned Throughput
            # - "shared": Use pay-as-you-go
            # https://cloud.google.com/vertex-ai/generative-ai/docs/use-provisioned-throughput
            "X-Vertex-AI-LLM-Request-Type": "shared"
        },
    )
)
response = client.models.generate_content(
    model="gemini-2.0-flash-001",
    contents="How does AI work?",
)
print(response.text)

# Example response:
# Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
#
# Here's a simplified overview:
# ...

SDK de Vertex AI para Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.

import vertexai
from vertexai.generative_models import GenerativeModel

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(
    project=PROJECT_ID,
    location="us-central1",
    # Options:
    # - "dedicated": Use Provisioned Throughput
    # - "shared": Use pay-as-you-go
    # https://cloud.google.com/vertex-ai/generative-ai/docs/use-provisioned-throughput
    request_metadata=[("x-vertex-ai-llm-request-type", "shared")],
)

model = GenerativeModel("gemini-1.5-flash-002")

response = model.generate_content(
    "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?"
)

print(response.text)
# Example response:
# **Emphasizing the Dried Aspect:**
# * Everlasting Blooms
# * Dried & Delightful
# * The Petal Preserve
# ...

REST

Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Vertex-AI-LLM-Request-Type: dedicated" \ # Options: dedicated, shared
  $URL \
  -d '{"contents": [{"role": "user", "parts": [{"text": "Hello."}]}]}'

Supervisa la capacidad de procesamiento aprovisionada

Puedes supervisar el uso de la capacidad de procesamiento aprovisionada a través de las métricas de supervisión y por solicitud.

Encabezados de respuesta

Si se procesó una solicitud con la capacidad de procesamiento aprovisionada, el siguiente encabezado HTTP está presente en la respuesta. Esta línea de código solo se aplica a la llamada a la API de generateContent.

  {"X-Vertex-AI-LLM-Request-Type": "dedicated"}

Métricas

La capacidad de procesamiento aprovisionada se puede supervisar con un conjunto de métricas que se miden en el tipo de recurso aiplatform.googleapis.com/PublisherModel. Cada métrica se puede filtrar según las siguientes dimensiones:

  • type: input, output
  • request_type: dedicated, shared

Para filtrar una métrica y ver el uso de la capacidad de procesamiento aprovisionada, usa el tipo de solicitud dedicated. El prefijo de ruta de una métrica es aiplatform.googleapis.com/publisher/online_serving.

Por ejemplo, la ruta de acceso completa de la métrica /consumed_throughput es aiplatform.googleapis.com/publisher/online_serving/consumed_throughput.

Las siguientes métricas de Cloud Monitoring están disponibles en el recurso aiplatform.googleapis.com/PublisherModel de los modelos de Gemini y tienen un filtro para el uso de la capacidad de procesamiento aprovisionada:

Métrica Nombre visible Descripción
/characters Caracteres Distribución del recuento de caracteres de entrada y salida.
/character_count Recuento de caracteres Es el recuento acumulado de caracteres de entrada y salida.
/consumed_throughput Capacidad de procesamiento de caracteres Tasa de capacidad de procesamiento consumida, que considera la tasa de consumo en caracteres. Para los modelos basados en tokens, esto equivale a la capacidad de procesamiento consumida en tokens × 4.
/model_invocation_count Recuento de invocaciones de modelos Cantidad de invocaciones de modelos (solicitudes de predicción).
/model_invocation_latencies Latencias de invocación de modelos Latencias de invocación del modelo (latencia de predicción)
/first_token_latencies Latencias del primer token Es la duración desde que se recibe la solicitud hasta que se muestra el primer token.
/tokens Tokens Distribución del recuento de tokens de entrada y salida.
/token_count Recuento de tokens Cantidad acumulada de tokens de entrada y salida.

Los modelos antropicos también tienen un filtro para la capacidad de procesamiento aprovisionada, pero solo para tokens/token_count.

¿Qué sigue?