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, 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 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 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 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 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
: Wird auftrue
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
- 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.