Anfragen und Antworten protokollieren

Vertex AI kann Beispiele für Anfragen und Antworten für Gemini- und unterstützte Partnermodelle protokollieren. Die Protokolle werden zur Anzeige und Analyse in einer BigQuery-Tabelle gespeichert. Auf dieser Seite wird beschrieben, wie Sie Anfrage-Antwort-Logs für Basismodelle und optimierte 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 Basis-Foundation-Modelle

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

Anfrage-/Antwort-Logging aktivieren

Wählen Sie einen der folgenden Tabs aus, um zu erfahren, wie Sie Anfrage-Antwort-Protokolle für ein Basisgrundlagenmodell aktivieren.

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

Python SDK

Mit dieser Methode können Sie ein PublisherModelConfig erstellen oder aktualisieren.

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 eine PublisherModelConfig mit setPublisherModelConfig:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • ENDPOINT_PREFIX: Die Region der Modellressource, gefolgt von -. Beispiel: us-central1- Wenn Sie den globalen Endpunkt verwenden, lassen Sie dieses Feld leer. Das Anfrage- und 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 Publishers. Beispiel: google.
  • MODEL: Der Name des Foundation-Modells. 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. Bei einem Wert von „1“ werden beispielsweise alle Anfragen protokolliert und bei einem Wert von „0,1“ 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 Basismodell mithilfe 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 Publishers. Beispiel: google.
  • MODEL: Der Name des Foundation-Modells. 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 Basismodell mithilfe der REST API oder des Python SDK.

Python SDK

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

REST API

Verwenden Sie setPublisherModelConfig, um das Logging zu deaktivieren:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Der Speicherort der Modellressource.
  • PUBLISHER: Der Name des Publishers. Beispiel: google.
  • MODEL: Der Name des Foundation-Modells. 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-Antwort-Protokolle für optimierte Modelle mit der REST API oder dem Python SDK konfigurieren.

Anfrage-/Antwort-Logs aktivieren

Wählen Sie einen der folgenden Tabs aus, um zu erfahren, wie Sie Anfrage-Antwort-Protokolle für ein optimiertes Modell aktivieren.

Python SDK

Mit dieser Methode können Sie die Konfiguration des Anfrage-/Antwort-Loggings für einen Endpunkt aktualisieren.

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, sodass Anfragen, die an alle bereitgestellten Modelle unter demselben Endpunkt gesendet werden, protokolliert werden.

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 und bei einem Wert von „0,1“ 10% der Anfragen.

  • 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: Wird auf true festgelegt, um zusätzlich zum standardmäßigen Anfrage-/Antwort-Logging das Logging von OpenTelemetry (OTEL) zu aktivieren.

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

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 optimierte Modell mithilfe der 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-Modells. 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
}
}

Protokolltabellenschema

In BigQuery werden die Protokolle mit dem folgenden Schema aufgezeichnet:

Feldname Typ Hinweise
Endpunkt STRING Ressourcenname des Endpunkts, auf dem das optimierte Modell bereitgestellt wird.
deployed_model_id STRING Die ID des bereitgestellten Modells für ein optimiertes Modell, das auf einem Endpunkt bereitgestellt wird.
logging_time TIMESTAMP Zeitpunkt, zu dem die Protokollierung erfolgt. Das ist ungefähr der Zeitpunkt, zu dem die Antwort zurückgegeben wird.
request_id NUMERIC Die automatisch generierte Ganzzahl-Anfrage-ID, die auf der API-Anfrage basiert.
request_payload STRING Wird für das Logging von Partnermodellen und die Abwärtskompatibilität mit dem Vertex AI-Endpunkt-Anfrage-/Antwortprotokoll verwendet.
response_payload STRING Wird für das Logging von Partnermodellen und die Abwärtskompatibilität mit dem Vertex AI-Endpunkt-Anfrage-/Antwortprotokoll verwendet.
Modell STRING Name der Modellressource.
model_version STRING Die Modellversion. Für Gemini-Modelle ist dies oft „standard“.
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 Protokolle im OpenTelemetry-Schemaformat Nur verfügbar, wenn otel_logging in der Protokollierungskonfiguration aktiviert ist.

Anfragen-Antwort-Paare, die größer als das Zeilenlimit von 10 MB der BigQuery Write API sind, werden nicht aufgezeichnet.

Nächste Schritte