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
, dondeENDPOINT_DISPLAY_NAME
sigue las reglas de nomenclatura de BigQuery. Si no especificas un nombre de tabla, se creará una tabla 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 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 valorTrue
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 nombrelogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, dondeENDPOINT_DISPLAY_NAME
sigue las reglas de nomenclatura de BigQuery. Si no especificas un nombre de tabla, se creará una con el nombrerequest_response_logging
.enableOtelLogging
: se define comotrue
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
- Calcula los precios de los registros de predicción online.
- Despliega un modelo con la Google Cloud consola o con la API de Vertex AI.
- Consulta cómo crear una tabla de BigQuery.