Registrar solicitudes y respuestas

Vertex AI puede registrar muestras de solicitudes y respuestas para Gemini y los modelos de socios compatibles. Los registros se guardan en una tabla de BigQuery para su visualización y análisis. En esta página, se describe cómo configurar los registros de solicitud-respuesta para los modelos de base y los modelos ajustados.

Métodos de API admitidos para el registro

Los registros de solicitud-respuesta son compatibles con todos los modelos de Gemini que usan generateContent o streamGenerateContent.

También se admiten los siguientes modelos de socios que usan rawPredict o streamrawPredict:

  • Anthropic Claude

Registros de solicitud y respuesta para modelos de base

Puedes configurar registros de solicitud-respuesta para modelos de base con la API de REST o el SDK de Python. Las configuraciones de registro pueden tardar unos minutos en aplicarse.

Habilita el registro de solicitudes y respuestas

Selecciona una de las siguientes pestañas para obtener instrucciones sobre cómo habilitar los registros de solicitud-respuesta para un modelo de base.

En el caso de los modelos de Anthropic, solo se admite REST para la configuración de registro. Para habilitar la configuración de registro a través de la API de REST, establece el publicador en anthropic y el nombre del modelo en uno de los modelos de Claude admitidos.

Python SDK

Este método se puede usar para crear o actualizar un PublisherModelConfig.

publisher_model = GenerativeModel('gemini-2.0-pro-001')

# Set logging configuration
publisher_model.set_request_response_logging_config(
    enabled=True,
    sampling_rate=1.0,
    bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
    enable_otel_logging=True
    )

API de REST

Crea o actualiza un PublisherModelConfig con setPublisherModelConfig:

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • ENDPOINT_PREFIX: Es la región del recurso del modelo seguida de -. Por ejemplo, us-central1-. Si usas el extremo global, déjalo en blanco. El registro de solicitudes y respuestas es compatible con todas las regiones compatibles con el modelo.
  • PROJECT_ID: ID del proyecto
  • LOCATION: Es la región del recurso del modelo. Si usas el extremo global, ingresa global.
  • PUBLISHER: Es el nombre del publicador. Por ejemplo, google.
  • MODEL: Es el nombre del modelo de base. Por ejemplo, gemini-2.0-flash-001.
  • SAMPLING_RATE: Para reducir los costos de almacenamiento, puedes establecer un número entre 0 y 1 para definir la fracción de solicitudes que se registrará. Por ejemplo, un valor de 1 registra todas las solicitudes y un valor de 0.1 registra el 10% de las solicitudes.
  • BQ_URI: Es la tabla de BigQuery que se usará para el registro. Si solo especificas un nombre de proyecto, se crea un conjunto de datos nuevo con el nombre logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID, en el que ENDPOINT_DISPLAY_NAME sigue las reglas de nombres de BigQuery. Si no especificas un nombre de tabla, se crea una tabla nueva con el nombre request_response_logging.

Método HTTP y URL:

POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig

Cuerpo JSON de la solicitud:

{
  "publisherModelConfig": {
     "loggingConfig": {
       "enabled": true,
       "samplingRate": SAMPLING_RATE,
       "bigqueryDestination": {
         "outputUri": "BQ_URI"
       },
       "enableOtelLogging": true
     }
   }
 }

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Cómo obtener la configuración de registro

Obtén la configuración de registro de solicitudes y respuestas del modelo de base con la API de REST.

API de REST

Obtén la configuración de registro de solicitudes y respuestas con fetchPublisherModelConfig:

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: ID del proyecto
  • LOCATION: Es la ubicación del recurso del modelo.
  • PUBLISHER: Es el nombre del publicador. Por ejemplo, google.
  • MODEL: Es el nombre del modelo de base. Por ejemplo, gemini-2.0-flash-001.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig"

PowerShell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Inhabilita el registro

Inhabilita el registro de solicitudes y respuestas del modelo de base con la API de REST o el SDK de Python.

Python SDK

publisher_model.set_request_response_logging_config(
  enabled=False,
  sampling_rate=0,
  bigquery_destination=''
  )

API de REST

Usa setPublisherModelConfig para inhabilitar el registro:

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: ID del proyecto
  • LOCATION: Es la ubicación del recurso del modelo.
  • PUBLISHER: Es el nombre del publicador. Por ejemplo, google.
  • MODEL: Es el nombre del modelo de base. Por ejemplo, gemini-2.0-flash-001.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig

Cuerpo JSON de la solicitud:

{
  "publisherModelConfig": {
     "loggingConfig": {
       "enabled": false
     }
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Registros de solicitudes y respuestas para modelos ajustados

Puedes configurar registros de solicitud-respuesta para modelos ajustados con la API de REST o el SDK de Python.

Habilita los registros de solicitudes y respuestas

Selecciona una de las siguientes pestañas para obtener instrucciones sobre cómo habilitar los registros de solicitud-respuesta para un modelo ajustado.

Python SDK

Este método se puede usar para actualizar la configuración de registro de solicitudes y respuestas de un extremo.

tuned_model = GenerativeModel("projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")

# Set logging configuration
tuned_model.set_request_response_logging_config(
    enabled=True,
    sampling_rate=1.0,
    bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
    enable_otel_logging=True
    )

API de REST

Solo puedes habilitar el registro de solicitudes y respuestas cuando creas un extremo con projects.locations.endpoints.create o aplicas un parche a un extremo existente con projects.locations.endpoints.patch.

Las solicitudes y respuestas se registran a nivel del extremo, por lo que se registran las solicitudes enviadas a cualquier modelo implementado en el mismo extremo.

Cuando crees o parches un extremo, propaga el campo predictRequestResponseLoggingConfig del recurso de extremo con las siguientes entradas:

  • enabled: Se establece en True para habilitar el registro de solicitudes y respuestas.

  • samplingRate: Para reducir los costos de almacenamiento, puedes establecer un número entre 0 y 1 para definir la fracción de solicitudes que se registrará. Por ejemplo, un valor de 1 registra todas las solicitudes y un valor de 0.1 registra el 10% de las solicitudes.

  • BigQueryDestination: Es la tabla de BigQuery que se usará para el registro. Si solo especificas un nombre de proyecto, se crea un conjunto de datos nuevo con el nombre logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, en el que ENDPOINT_DISPLAY_NAME sigue las reglas de nombres de BigQuery. Si no especificas un nombre de tabla, se crea una tabla nueva con el nombre request_response_logging.

  • enableOtelLogging: Se establece en true para habilitar el registro de OpenTelemetry (OTEL), además del registro de solicitud-respuesta predeterminado.

Para ver el esquema de la tabla de BigQuery, consulta Esquema de la tabla de registros.

A continuación, se muestra una configuración de ejemplo:

{
  "predictRequestResponseLoggingConfig": {
    "enabled": true,
    "samplingRate": 0.5,
    "bigqueryDestination": {
      "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
    },
    "enableOtelLogging": true
  }
}

Cómo obtener la configuración de registro

Obtén la configuración de registro de solicitudes y respuestas del modelo ajustado con la API de REST.

API de REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: ID del proyecto
  • LOCATION: Es la ubicación del recurso del extremo.
  • MODEL: Es el nombre del modelo de base. Por ejemplo, gemini-2.0-flash-001.
  • ENDPOINT_ID: Es el ID del extremo.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID"

PowerShell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Inhabilita la configuración de registro

Inhabilita la configuración de registro de solicitudes y respuestas para el extremo.

Python SDK

tuned_model = GenerativeModel("projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")

# Set logging configuration
tuned_model.set_request_response_logging_config(
    enabled=False,
    sampling_rate=1.0,
    bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
    enable_otel_logging=False
    )

API de REST

{
"predictRequestResponseLoggingConfig": {
  "enabled": false
}
}

Esquema de la tabla de registros

En BigQuery, los registros se registran con el siguiente esquema:

Nombre del campo Tipo Notas
extremo STRING Es el nombre del recurso del extremo al que se implementa el modelo ajustado.
deployed_model_id STRING ID del modelo implementado para un modelo ajustado que se implementó en un extremo.
logging_time TIMESTAMP Es la hora en la que se realiza el registro. Este es aproximadamente el tiempo en que se muestra la respuesta.
request_id NUMERIC El ID de solicitud de número entero generado automáticamente según la solicitud a la API.
request_payload STRING Se incluye para el registro de modelos de socios y la retrocompatibilidad con el registro de solicitudes y respuestas del extremo de Vertex AI.
response_payload STRING Se incluye para el registro de modelos de socios y la retrocompatibilidad con el registro de solicitudes y respuestas del extremo de Vertex AI.
modelo STRING Es el nombre del recurso de modelo.
model_version STRING La versión del modelo. Esto suele ser "predeterminado" para los modelos de Gemini.
api_method STRING generateContent, streamGenerateContent, rawPredict, streamRawPredict
full_request JSON El GenerateContentRequest completo.
full_response JSON El GenerateContentResponse completo.
metadatos JSON Cualquier metadato de la llamada; contiene la latencia de la solicitud.
otel_log JSON Registros en formato de esquema de OpenTelemetry. Solo está disponible si otel_logging está habilitado en la configuración de registro.

Ten en cuenta que no se registran los pares de solicitud-respuesta que superan el límite de 10 MB por fila de la API de escritura de BigQuery.

¿Qué sigue?