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 queENDPOINT_DISPLAY_NAME
sigue las reglas de nombres de BigQuery. Si no especificas un nombre de tabla, se crea una tabla nueva con el nombrerequest_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 enTrue
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 nombrelogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, en el queENDPOINT_DISPLAY_NAME
sigue las reglas de nombres de BigQuery. Si no especificas un nombre de tabla, se crea una tabla nueva con el nombrerequest_response_logging
.enableOtelLogging
: Se establece entrue
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?
- Estima precios para el registro de predicción en línea.
- Implementa un modelo con la consola de Google Cloud o con la API de Vertex AI.
- Aprende a crear una tabla de BigQuery.