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, wobeiENDPOINT_DISPLAY_NAME
den BigQuery-Benennungsregeln folgt. Wenn Sie keinen Tabellennamen angeben, wird eine neue Tabelle mit dem Namenrequest_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 aufTrue
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 Namenlogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
erstellt, wobeiENDPOINT_DISPLAY_NAME
den BigQuery-Benennungsregeln folgt. Wenn Sie keinen Tabellennamen angeben, wird eine neue Tabelle mit dem Namenrequest_response_logging
erstellt.enableOtelLogging
: Auftrue
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
- Preise schätzen für das Logging von Onlinevorhersagen.
- Stellen Sie ein Modell mit der Google Cloud Console oder mit der Vertex AI API bereit.
- Weitere Informationen zum Erstellen einer BigQuery-Tabelle finden Sie unter Tabelle erstellen und verwenden.