Vertex AI può registrare esempi di richieste e risposte per Gemini e i modelli partner supportati. I log vengono salvati in una tabella BigQuery per la visualizzazione e l'analisi. Questa pagina descrive come configurare i log di richiesta/risposta per i modelli di base e per i modelli ottimizzati.
Metodi API supportati per la registrazione
I log di richiesta-risposta sono supportati per tutti i modelli Gemini che utilizzano generateContent
o streamGenerateContent
.
Sono supportati anche i seguenti modelli di partner che utilizzano
rawPredict
o
streamrawPredict
:
- Anthropic Claude
Log di richiesta/risposta per i modelli di base
Puoi configurare i log di richiesta/risposta per i modelli di base utilizzando l'API REST o l'SDK Python. Potrebbero essere necessari alcuni minuti prima che le configurazioni di logging diventino effettive.
Attivare il logging delle richieste e delle risposte
Seleziona una delle seguenti schede per istruzioni su come attivare i log di richiesta/risposta per un modello di base.
Per i modelli Anthropic, per la configurazione della registrazione è supportato solo REST. Attiva la configurazione del logging tramite l'API REST impostando publisher su anthropic
e il nome del modello su uno dei modelli Claude supportati.
SDK Python
Questo metodo può essere utilizzato per creare o aggiornare 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 aggiorna un PublisherModelConfig
utilizzando setPublisherModelConfig
:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- ENDPOINT_PREFIX: la regione della
risorsa modello seguita da
-
. Ad esempio:us-central1-
. Se utilizzi l'endpoint globale, lascia vuoto il campo. Il logging delle richieste e delle risposte è supportato per tutte le regioni supportate dal modello. - PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione della risorsa modello.
Se utilizzi l'endpoint globale, inserisci
global
. - PUBLISHER: il nome dell'editore. Ad esempio,
google
. - MODEL: il nome del modello di base. Ad esempio,
gemini-2.0-flash-001
. - SAMPLING_RATE: per ridurre i costi di archiviazione, puoi impostare un numero compreso tra 0 e 1 per definire la frazione di richieste da registrare. Ad esempio, un valore di 1 registra tutte le richieste e un valore di 0, 1 registra il 10% delle richieste.
- BQ_URI: la tabella BigQuery da utilizzare per la registrazione. Se specifichi solo il nome di un progetto, viene creato un nuovo set di dati con il nome
logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID
, doveENDPOINT_DISPLAY_NAME
segue le regole di denominazione di BigQuery. Se non specifichi un nome tabella, viene creata una nuova tabella con il nomerequest_response_logging
.
Metodo HTTP e URL:
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
Corpo JSON della richiesta:
{ "publisherModelConfig": { "loggingConfig": { "enabled": true, "samplingRate": SAMPLING_RATE, "bigqueryDestination": { "outputUri": "BQ_URI" }, "enableOtelLogging": true } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Recuperare la configurazione di logging
Ottieni la configurazione di registrazione delle richieste e delle risposte per il modello di base utilizzando l'API REST.
API REST
Ottieni la configurazione del logging delle richieste e delle risposte utilizzando
fetchPublisherModelConfig
:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la posizione della risorsa del modello.
- PUBLISHER: il nome dell'editore. Ad esempio,
google
. - MODEL: il nome del modello di base. Ad esempio,
gemini-2.0-flash-001
.
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo 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
Esegui questo 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
Dovresti ricevere una risposta JSON simile alla seguente:
Disattivare il logging
Disattiva il logging delle richieste e delle risposte per il modello di base utilizzando l'API REST o l'SDK Python.
SDK Python
publisher_model.set_request_response_logging_config(
enabled=False,
sampling_rate=0,
bigquery_destination=''
)
API REST
Usa setPublisherModelConfig
per disattivare il logging:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la posizione della risorsa del modello.
- PUBLISHER: il nome dell'editore. Ad esempio,
google
. - MODEL: il nome del modello di base. Ad esempio,
gemini-2.0-flash-001
.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
Corpo JSON della richiesta:
{ "publisherModelConfig": { "loggingConfig": { "enabled": false } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Log di richiesta-risposta per i modelli ottimizzati
Puoi configurare i log di richiesta/risposta per i modelli ottimizzati utilizzando l'API REST o l'SDK Python.
Attiva i log di richiesta/risposta
Seleziona una delle seguenti schede per istruzioni su come attivare i log di richiesta/risposta per un modello ottimizzato.
SDK Python
Questo metodo può essere utilizzato per aggiornare la configurazione della registrazione delle richieste e delle risposte per 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
Puoi attivare il logging delle richieste e delle risposte solo quando crei un endpoint utilizzando
projects.locations.endpoints.create
o esegui la patch di un endpoint esistente utilizzando
projects.locations.endpoints.patch
.
Le richieste e le risposte vengono registrate a livello di endpoint, quindi vengono registrate le richieste inviate a qualsiasi modello di cui è stato eseguito il deployment nello stesso endpoint.
Quando
crei o esegui la patch di un endpoint,
compila il campo predictRequestResponseLoggingConfig
della
risorsa endpoint
con le seguenti voci:
enabled
: impostato suTrue
per abilitare il logging delle richieste e delle risposte.samplingRate
: per ridurre i costi di archiviazione, puoi impostare un numero compreso tra 0 e 1 per definire la frazione di richieste da registrare. Ad esempio, un valore pari a 1 registra tutte le richieste, mentre un valore pari a 0,1 registra il 10% delle richieste.BigQueryDestination
: la tabella BigQuery da utilizzare per la registrazione. Se specifichi solo un nome del progetto, viene creato un nuovo set di dati con il nomelogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, doveENDPOINT_DISPLAY_NAME
segue le regole di denominazione di BigQuery. Se non specifichi un nome di tabella, ne viene creata una nuova con il nomerequest_response_logging
.enableOtelLogging
: impostato sutrue
per attivare il logging di OpenTelemetry (OTEL) oltre al logging di richiesta-risposta predefinito.
Per visualizzare lo schema della tabella BigQuery, consulta Schema della tabella di log.
Di seguito è riportata una configurazione di esempio:
{ "predictRequestResponseLoggingConfig": { "enabled": true, "samplingRate": 0.5, "bigqueryDestination": { "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" }, "enableOtelLogging": true } }
Recuperare la configurazione di logging
Ottieni la configurazione del logging delle richieste e delle risposte per il modello ottimizzato utilizzando l'API REST.
API REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la posizione della risorsa endpoint.
- MODEL: il nome del modello di base. Ad esempio,
gemini-2.0-flash-001
. - ENDPOINT_ID: l'ID dell'endpoint.
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo 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
Esegui questo 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
Dovresti ricevere una risposta JSON simile alla seguente:
Disattivare la configurazione del logging
Disattiva la configurazione del logging delle richieste e delle risposte per l'endpoint.
SDK 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 } }
Schema della tabella di log
In BigQuery, i log vengono registrati utilizzando il seguente schema:
Nome campo | Tipo | Note |
---|---|---|
endpoint | STRING | Nome della risorsa dell'endpoint a cui è stato eseguito il deployment del modello ottimizzato. |
deployed_model_id | STRING | ID modello di cui è stato eseguito il deployment per un modello ottimizzato di cui è stato eseguito il deployment in un endpoint. |
logging_time | TIMESTAMP | L'ora in cui viene eseguito il logging. Si tratta approssimativamente del momento in cui viene restituita la risposta. |
request_id | NUMERIC | L'ID richiesta intero generato automaticamente in base alla richiesta API. |
request_payload | STRING | Incluso per il logging dei modelli dei partner e la compatibilità con le versioni precedenti del log di richiesta/risposta dell'endpoint Vertex AI. |
response_payload | STRING | Incluso per il logging dei modelli dei partner e la compatibilità con le versioni precedenti del log di richiesta/risposta dell'endpoint Vertex AI. |
modello | STRING | Nome della risorsa del modello. |
model_version | STRING | La versione del modello. Spesso è il valore "predefinito" per i modelli Gemini. |
api_method | STRING | generateContent, streamGenerateContent, rawPredict, streamRawPredict |
full_request | JSON | Il GenerateContentRequest completo. |
full_response | JSON | Il GenerateContentResponse completo. |
metadati | JSON | Eventuali metadati della chiamata; contiene la latenza della richiesta. |
otel_log | JSON | Log nel formato dello schema OpenTelemetry. Disponibile solo se otel_logging è attivato nella configurazione della registrazione. |
Tieni presente che le coppie di richiesta-risposta più grandi del limite di 10 MB per le righe dell'API di scrittura BigQuery non vengono registrate.
Passaggi successivi
- Stima dei prezzi per il logging della previsione online.
- Esegui il deployment di un modello utilizzando la Google Cloud console o utilizzando l'API Vertex AI.
- Scopri come creare una tabella BigQuery.