Registra richieste e risposte

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, dove ENDPOINT_DISPLAY_NAME segue le regole di denominazione di BigQuery. Se non specifichi un nome tabella, viene creata una nuova tabella con il nome request_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 su True 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 nome logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, dove ENDPOINT_DISPLAY_NAME segue le regole di denominazione di BigQuery. Se non specifichi un nome di tabella, ne viene creata una nuova con il nome request_response_logging.

  • enableOtelLogging: impostato su true 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