Anfragen und Antworten protokollieren

Vertex AI kann Stichproben von Anfragen und Antworten für Gemini und unterstützte Partnermodelle protokollieren. Die Logs werden in einer BigQuery-Tabelle gespeichert, damit Sie sie ansehen und analysieren können. Auf dieser Seite wird beschrieben, wie Sie Anfrage-Antwort-Logs für Foundation-Basismodelle und feinabgestimmte Modelle konfigurieren.

Unterstützte API-Methoden für die Protokollierung

Anfrage-Antwort-Logs werden für alle Gemini-Modelle unterstützt, die generateContent oder streamGenerateContent verwenden.

Die folgenden Partnermodelle, die rawPredict oder streamrawPredict verwenden, werden ebenfalls unterstützt:

  • Anthropic Claude

Anfrage-/Antwort-Logs für Foundation-Basismodelle

Sie können Anfrage-/Antwortlogs für Basismodelle mit der REST API oder dem Python SDK konfigurieren. Es kann einige Minuten dauern, bis Protokollierungskonfigurationen wirksam werden.

Anfrage-/Antwort-Logging aktivieren

Wählen Sie einen der folgenden Tabs aus, um eine Anleitung zum Aktivieren von Protokollen für Anfragen und Antworten für ein Basis-Grundlagenmodell aufzurufen.

Für Anthropic-Modelle wird für die Protokollierungskonfiguration nur REST unterstützt. Aktivieren Sie die Protokollierungskonfiguration über die REST API, indem Sie den Publisher auf anthropic und den Modellnamen auf eines der unterstützten Claude-Modelle festlegen.

Python SDK

Mit dieser Methode kann ein PublisherModelConfig erstellt oder aktualisiert werden.

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
    )

REST API

So erstellen oder aktualisieren Sie PublisherModelConfig mit setPublisherModelConfig:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • ENDPOINT_PREFIX: Die Region der Modellressource, gefolgt von -. Beispiel: us-central1- Lassen Sie das Feld leer, wenn Sie den globalen Endpunkt verwenden. Das Anfrage-Antwort-Logging wird für alle vom Modell unterstützten Regionen unterstützt.
  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region der Modellressource. Wenn Sie den globalen Endpunkt verwenden, geben Sie global ein.
  • PUBLISHER: Der Name des Verlags. Beispiel: google.
  • MODEL: Der Name des Foundation Models. Beispiel: gemini-2.0-flash-001.
  • SAMPLING_RATE: Um die Speicherkosten zu senken, können Sie eine Zahl zwischen 0 und 1 festlegen, um den Anteil der zu protokollierenden Anfragen zu definieren. Ein Wert von 1 protokolliert beispielsweise alle Anfragen und ein Wert von 0,1 protokolliert 10% der Anfragen.
  • BQ_URI: Die BigQuery-Tabelle, die für das Logging verwendet werden soll. Wenn Sie nur einen Projektnamen angeben, wird ein neues Dataset mit dem Namen logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID erstellt, wobei ENDPOINT_DISPLAY_NAME den BigQuery-Benennungsregeln folgt. Wenn Sie keinen Tabellennamen angeben, wird eine neue Tabelle mit dem Namen request_response_logging erstellt.

HTTP-Methode und URL:

POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig

JSON-Text der Anfrage:

{
  "publisherModelConfig": {
     "loggingConfig": {
       "enabled": true,
       "samplingRate": SAMPLING_RATE,
       "bigqueryDestination": {
         "outputUri": "BQ_URI"
       },
       "enableOtelLogging": true
     }
   }
 }

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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

Sie sollten in etwa folgende JSON-Antwort erhalten:

Logging-Konfiguration abrufen

Rufen Sie die Konfiguration für das Anfrage-/Antwort-Logging für das Foundation Model mit der REST API ab.

REST API

Rufen Sie die Konfiguration für das Anfrage-/Antwort-Logging mit fetchPublisherModelConfig ab:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Der Speicherort der Modellressource.
  • PUBLISHER: Der Name des Verlags. Beispiel: google.
  • MODEL: Der Name des Foundation Models. Beispiel: gemini-2.0-flash-001.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

Führen Sie folgenden Befehl aus:

$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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Logging deaktivieren

Deaktivieren Sie das Anfrage-/Antwort-Logging für das Fundamentmodell mit der REST API oder dem Python SDK.

Python SDK

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

REST API

So deaktivieren Sie das Logging mit setPublisherModelConfig:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Der Speicherort der Modellressource.
  • PUBLISHER: Der Name des Verlags. Beispiel: google.
  • MODEL: Der Name des Foundation Models. Beispiel: gemini-2.0-flash-001.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig

JSON-Text der Anfrage:

{
  "publisherModelConfig": {
     "loggingConfig": {
       "enabled": false
     }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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

Sie sollten in etwa folgende JSON-Antwort erhalten:

Anfrage-/Antwort-Logs für optimierte Modelle

Sie können Anfrage-/Antwortprotokolle für feinabgestimmte Modelle mit der REST API oder dem Python SDK konfigurieren.

Anfrage-/Antwort-Logs aktivieren

Wählen Sie einen der folgenden Tabs aus, um eine Anleitung zum Aktivieren von Protokollen für Anfragen und Antworten für ein feinabgestimmtes Modell aufzurufen.

Python SDK

Mit dieser Methode kann die Konfiguration des Anfrage-/Antwort-Loggings für einen Endpunkt aktualisiert werden.

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
    )

REST API

Sie können das Anfrage-/Antwort-Logging nur aktivieren, wenn Sie mit projects.locations.endpoints.create einen Endpunkt erstellen oder mit projects.locations.endpoints.patch einen vorhandenen Endpunkt patchen.

Anfragen und Antworten werden auf Endpunktebene protokolliert. Anfragen, die an alle bereitgestellten Modelle unter demselben Endpunkt gesendet werden, werden also protokolliert.

Wenn Sie einen Endpunkt erstellen oder patchen, füllen Sie das Feld predictRequestResponseLoggingConfig der Endpunktressource mit den folgenden Einträgen aus:

  • enabled: Wird auf True festgelegt, um das Anfrage-/Antwort-Logging zu aktivieren.

  • samplingRate: Um die Speicherkosten zu senken, können Sie eine Zahl zwischen 0 und 1 festlegen, um den Anteil der zu protokollierenden Anfragen zu definieren. Bei einem Wert von 1 werden beispielsweise alle Anfragen protokolliert, bei einem Wert von 0, 1 werden 10% der Anfragen protokolliert.

  • BigQueryDestination: Die BigQuery-Tabelle, die für das Logging verwendet werden soll. Wenn Sie nur einen Projektnamen angeben, wird ein neues Dataset mit dem Namen logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID erstellt, wobei ENDPOINT_DISPLAY_NAME den BigQuery-Benennungsregeln folgt. Wenn Sie keinen Tabellennamen angeben, wird eine neue Tabelle mit dem Namen request_response_logging erstellt.

  • enableOtelLogging: Auf true festgelegt, um zusätzlich zum Standard-Anfrage-/Antwort-Logging das OpenTelemetry (OTEL)-Logging zu aktivieren.

Informationen zum BigQuery-Tabellenschema finden Sie unter Tabellenschema für Logging.

Hier sehen Sie eine Beispielkonfiguration:

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

Logging-Konfiguration abrufen

Rufen Sie die Konfiguration für das Anfrage-/Antwort-Logging für das feinabgestimmte Modell über die REST API ab.

REST API

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Der Speicherort der Endpunktressource.
  • MODEL: Der Name des Foundation Models. Beispiel: gemini-2.0-flash-001.
  • ENDPOINT_ID: Die ID des Endpunkts.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

Führen Sie folgenden Befehl aus:

$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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Logging-Konfiguration deaktivieren

Deaktivieren Sie die Konfiguration des Anfrage-/Antwort-Loggings für den Endpunkt.

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
    )

REST API

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

Schema der Logging-Tabelle

In BigQuery werden die Logs mit dem folgenden Schema aufgezeichnet:

Feldname Typ Hinweise
Endpunkt STRING Der Ressourcenname des Endpunkts, auf dem das feinabgestimmte Modell bereitgestellt wird.
deployed_model_id STRING ID des bereitgestellten Modells für ein abgestimmtes Modell, das auf einem Endpunkt bereitgestellt wird.
logging_time TIMESTAMP Der Zeitpunkt, zu dem die Protokollierung erfolgt. Das ist ungefähr die Zeit, zu der die Antwort zurückgegeben wird.
request_id NUMERIC Die automatisch generierte ID der Anfrage als Ganzzahl, die auf der API-Anfrage basiert.
request_payload STRING Für das Logging von Partnermodellen und die Abwärtskompatibilität mit dem Log für Anfragen/Antworten von Vertex AI-Endpunkten.
response_payload STRING Für das Logging von Partnermodellen und die Abwärtskompatibilität mit dem Log für Anfragen/Antworten von Vertex AI-Endpunkten.
Modell STRING Modellressourcenname.
model_version STRING Die Modellversion. Bei Gemini-Modellen ist dies oft „default“.
api_method STRING generateContent, streamGenerateContent, rawPredict, streamRawPredict
full_request JSON Die vollständige GenerateContentRequest.
full_response JSON Die vollständige GenerateContentResponse.
Metadaten JSON Alle Metadaten des Aufrufs, einschließlich der Anfragelatenz.
otel_log JSON Logs im OpenTelemetry-Schemaformat. Nur verfügbar, wenn otel_logging in der Protokollierungskonfiguration aktiviert ist.

Anfrage-Antwort-Paare, die größer als das BigQuery-Limit von 10 MB pro Zeile für die Write API sind, werden nicht aufgezeichnet.

Nächste Schritte