Registrar solicitudes y respuestas

Vertex AI puede registrar muestras de solicitudes y respuestas de Gemini y de los modelos de partners compatibles. Los registros se guardan en una tabla de BigQuery para verlos y analizarlos. En esta página se describe cómo configurar los registros de solicitudes y respuestas de los modelos base y los modelos ajustados.

Métodos de API admitidos para el registro

Los registros de solicitudes y respuestas se admiten en todos los modelos de Gemini que usen generateContent o streamGenerateContent.

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

  • Anthropic Claude

Registros de solicitudes y respuestas de modelos fundacionales básicos

Puedes configurar los registros de solicitudes y respuestas de los modelos base de Foundation mediante la API REST o el SDK de Python. Las configuraciones de registro pueden tardar unos minutos en aplicarse.

Habilitar el registro de solicitudes y respuestas

Selecciona una de las siguientes pestañas para ver las instrucciones sobre cómo habilitar los registros de solicitudes y respuestas de un modelo 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 REST, asigna el valor anthropic al editor y el nombre del modelo a uno de los modelos de Claude admitidos.

SDK de Python

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 REST

Crea o actualiza un PublisherModelConfig con setPublisherModelConfig:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • ENDPOINT_PREFIX: la región del recurso del modelo seguida de -. Por ejemplo, us-central1-. Si usas el endpoint global, déjalo en blanco. El registro de solicitudes y respuestas está disponible en todas las regiones admitidas por el modelo.
  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región del recurso del modelo. Si usa el endpoint global, introduzca global.
  • PUBLISHER: nombre del editor. Por ejemplo, google.
  • MODEL: nombre del modelo base. Por ejemplo, gemini-2.0-flash-001.
  • SAMPLING_RATE: Para reducir los costes de almacenamiento, puedes definir un número entre 0 y 1 para especificar la fracción de solicitudes que se registrarán. Por ejemplo, el valor 1 registra todas las solicitudes, mientras que el valor 0,1 registra el 10% de las solicitudes.
  • BQ_URI: la tabla de BigQuery que se usará para registrar. Si solo especificas un nombre de proyecto, se creará un conjunto de datos con el nombre logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID, donde ENDPOINT_DISPLAY_NAME sigue las reglas de nomenclatura de BigQuery. Si no especificas un nombre de tabla, se creará una tabla 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 siguiente:

Obtener la configuración de registro

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

API REST

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

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la ubicación del recurso del modelo.
  • PUBLISHER: nombre del editor. Por ejemplo, google.
  • MODEL: nombre del modelo 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 comando siguiente:

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 comando siguiente:

$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 siguiente:

Inhabilitar el registro

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

SDK de Python

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

API REST

Usa setPublisherModelConfig para inhabilitar el registro:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la ubicación del recurso del modelo.
  • PUBLISHER: nombre del editor. Por ejemplo, google.
  • MODEL: nombre del modelo 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 siguiente:

Registros de solicitudes y respuestas de modelos ajustados

Puedes configurar los registros de solicitudes y respuestas de los modelos ajustados mediante la API REST o el SDK de Python.

Habilitar registros de solicitudes y respuestas

Selecciona una de las siguientes pestañas para ver las instrucciones sobre cómo habilitar los registros de solicitudes y respuestas de un modelo ajustado.

SDK de Python

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

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 REST

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

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

Cuando cree o modifique un endpoint, rellene el campo predictRequestResponseLoggingConfig del recurso Endpoint con las siguientes entradas:

  • enabled: asigna el valor True para habilitar el registro de solicitudes y respuestas.

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

  • BigQueryDestination: la tabla de BigQuery que se usará para registrar datos. Si solo especificas un nombre de proyecto, se creará un conjunto de datos con el nombre logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, donde ENDPOINT_DISPLAY_NAME sigue las reglas de nomenclatura de BigQuery. Si no especificas un nombre de tabla, se creará una con el nombre request_response_logging.

  • enableOtelLogging: se define como true para habilitar el registro de OpenTelemetry (OTEL) además del registro predeterminado de solicitudes y respuestas.

Para ver el esquema de la tabla de BigQuery, consulta el esquema de la tabla de registro.

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

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

Obtener la configuración de registro

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

API REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

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

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 comando siguiente:

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 comando siguiente:

$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 siguiente:

Inhabilitar la configuración de registro

Inhabilita la configuración de registro de solicitudes y respuestas del endpoint.

SDK de Python

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 REST

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

Esquema de tabla de registro

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

Nombre del campo Tipo Notas
punto final STRING Nombre de recurso del endpoint en el que se implementa el modelo ajustado.
deployed_model_id STRING ID del modelo desplegado de un modelo ajustado desplegado en un endpoint.
logging_time TIMESTAMP La hora a la que se realiza el registro. Este es el tiempo aproximado que tarda en devolverse la respuesta.
request_id NUMERIC ID de solicitud entero generado automáticamente en función de la solicitud de la API.
request_payload STRING Se incluye para el registro de modelos de partners y la compatibilidad con versiones anteriores con el registro de solicitudes y respuestas de endpoints de Vertex AI.
response_payload STRING Se incluye para el registro de modelos de partners y la compatibilidad con versiones anteriores con el registro de solicitudes y respuestas de endpoints de Vertex AI.
modelo STRING Nombre de recurso del modelo.
model_version STRING Versión del modelo. A menudo, es el valor predeterminado de los modelos de Gemini.
api_method STRING generateContent, streamGenerateContent, rawPredict, streamRawPredict
full_request JSON El GenerateContentRequest completo.
full_response JSON El GenerateContentResponse completo.
metadata JSON Metadatos 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 y respuesta que superen el límite de 10 MB por fila de la API de escritura de BigQuery.

Siguientes pasos