Vertex AI peut enregistrer des exemples de requêtes et de réponses pour Gemini et les modèles partenaires compatibles. Les journaux sont enregistrés dans une table BigQuery pour être consultés et analysés. Cette page explique comment configurer les journaux de requête et de réponse pour les modèles de base et les modèles affinés.
Méthodes d'API compatibles pour la journalisation
Les journaux de requêtes et de réponses sont compatibles avec tous les modèles Gemini qui utilisent generateContent
ou streamGenerateContent
.
Les modèles partenaires suivants qui utilisent
rawPredict
ou
streamrawPredict
sont également acceptés :
- Anthropic Claude
Journaux des requêtes et réponses pour les modèles de fondation de base
Vous pouvez configurer les journaux de requête/réponse pour les modèles de base à l'aide de l'API REST ou du SDK Python. L'application des configurations de journalisation peut prendre quelques minutes.
Activer la journalisation des requêtes et réponses
Sélectionnez l'un des onglets suivants pour obtenir des instructions sur l'activation des journaux de demande et de réponse pour un modèle de fondation de base.
Pour les modèles Anthropic, seule l'API REST est compatible avec la configuration de la journalisation. Activez la configuration de la journalisation via l'API REST en définissant l'éditeur sur anthropic
et le nom du modèle sur l'un des modèles Claude compatibles.
SDK Python
Cette méthode permet de créer ou de mettre à jour 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
Créez ou mettez à jour un PublisherModelConfig
à l'aide de setPublisherModelConfig
:
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- ENDPOINT_PREFIX : région de la ressource de modèle suivie de
-
. Par exemple,us-central1-
. Si vous utilisez le point de terminaison mondial, laissez ce champ vide. La journalisation des requêtes et des réponses est disponible pour toutes les régions acceptées par le modèle. - PROJECT_ID : ID de votre projet
- LOCATION : région de la ressource de modèle.
Si vous utilisez le point de terminaison mondial, saisissez
global
. - PUBLISHER : nom de l'éditeur. Exemple :
google
. - MODEL : nom du modèle de fondation. Exemple :
gemini-2.0-flash-001
. - SAMPLING_RATE : Pour réduire les coûts de stockage, vous pouvez définir un nombre compris entre 0 et 1 pour définir la fraction des requêtes à consigner. Par exemple, une valeur de 1 consigne toutes les requêtes, tandis qu'une valeur de 0,1 n'en consigne que 10 %.
- BQ_URI : table BigQuery à utiliser pour la journalisation. Si vous ne spécifiez qu'un nom de projet, un ensemble de données est créé, nommé
logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID
, oùENDPOINT_DISPLAY_NAME
suit les règles de dénomination de BigQuery. Si vous ne spécifiez pas de nom de table, une nouvelle table est créée avec le nomrequest_response_logging
.
Méthode HTTP et URL :
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
Corps JSON de la requête :
{ "publisherModelConfig": { "loggingConfig": { "enabled": true, "samplingRate": SAMPLING_RATE, "bigqueryDestination": { "outputUri": "BQ_URI" }, "enableOtelLogging": true } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Obtenir la configuration de la journalisation
Obtenez la configuration de la journalisation des requêtes et réponses pour le modèle de fondation à l'aide de l'API REST.
API REST
Obtenez la configuration de la journalisation des requêtes et réponses à l'aide de fetchPublisherModelConfig
:
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet
- LOCATION : emplacement de la ressource de modèle.
- PUBLISHER : nom de l'éditeur. Exemple :
google
. - MODEL : nom du modèle de fondation. Exemple :
gemini-2.0-flash-001
.
Méthode HTTP et URL :
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Désactiver la journalisation
Désactivez la journalisation des requêtes et réponses pour le modèle de fondation à l'aide de l'API REST ou du SDK Python.
SDK Python
publisher_model.set_request_response_logging_config(
enabled=False,
sampling_rate=0,
bigquery_destination=''
)
API REST
Utilisez setPublisherModelConfig
pour désactiver la journalisation :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet
- LOCATION : emplacement de la ressource de modèle.
- PUBLISHER : nom de l'éditeur. Exemple :
google
. - MODEL : nom du modèle de fondation. Exemple :
gemini-2.0-flash-001
.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
Corps JSON de la requête :
{ "publisherModelConfig": { "loggingConfig": { "enabled": false } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Journaux des requêtes et réponses pour les modèles affinés
Vous pouvez configurer les journaux de requête/réponse pour les modèles affinés à l'aide de l'API REST ou du SDK Python.
Activer les journaux de requêtes et de réponses
Sélectionnez l'un des onglets suivants pour obtenir des instructions sur l'activation des journaux de demande/réponse pour un modèle affiné.
SDK Python
Cette méthode permet de mettre à jour la configuration de journalisation des requêtes et réponses pour un point de terminaison.
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
Vous ne pouvez activer la journalisation des requêtes et réponses que lorsque vous créez un point de terminaison à l'aide de projects.locations.endpoints.create
ou appliquez un correctif à un point de terminaison existant à l'aide de projects.locations.endpoints.patch
.
Les requêtes et les réponses sont enregistrées au niveau du point de terminaison. Par conséquent, les requêtes envoyées aux modèles déployés sous le même point de terminaison sont consignées.
Lorsque vous créez ou corrigez un point de terminaison, remplissez le champ predictRequestResponseLoggingConfig
de la ressource Endpoint avec les entrées suivantes :
enabled
: défini surTrue
pour activer la journalisation des requêtes et réponses.samplingRate
: Pour réduire les coûts de stockage, vous pouvez définir un nombre compris entre 0 et 1 pour définir la fraction des requêtes à consigner. Par exemple, une valeur de 1 consigne toutes les requêtes, tandis qu'une valeur de 0,1 n'en consigne que 10 %.BigQueryDestination
: table BigQuery à utiliser pour la journalisation. Si vous ne spécifiez qu'un nom de projet, un ensemble de données est créé, nommélogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, oùENDPOINT_DISPLAY_NAME
suit les règles de dénomination de BigQuery. Si vous ne spécifiez pas de nom de table, une nouvelle table est créée avec le nomrequest_response_logging
.enableOtelLogging
: défini surtrue
pour activer la journalisation OpenTelemetry (OTEL) en plus de la journalisation des requêtes et réponses par défaut.
Pour afficher le schéma de la table BigQuery, consultez Schéma de la table de journaux.
Voici un exemple de configuration :
{ "predictRequestResponseLoggingConfig": { "enabled": true, "samplingRate": 0.5, "bigqueryDestination": { "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" }, "enableOtelLogging": true } }
Obtenir la configuration de la journalisation
Obtenez la configuration de la journalisation des requêtes et réponses pour le modèle affiné à l'aide de l'API REST.
API REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet
- LOCATION : emplacement de la ressource de point de terminaison.
- MODEL : nom du modèle de fondation. Exemple :
gemini-2.0-flash-001
. - ENDPOINT_ID : ID du point de terminaison.
Méthode HTTP et URL :
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Désactiver la configuration de la journalisation
Désactivez la configuration de journalisation des requêtes et réponses pour le point de terminaison.
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 } }
Schéma de la table de journalisation
Dans BigQuery, les journaux sont enregistrés à l'aide du schéma suivant :
Nom du champ | Type | Remarques |
---|---|---|
point de terminaison | STRING | Nom de ressource du point de terminaison sur lequel le modèle réglé est déployé. |
deployed_model_id | STRING | ID du modèle déployé pour un modèle réglé déployé sur un point de terminaison. |
logging_time | TIMESTAMP | Heure à laquelle la journalisation est effectuée. Il s'agit approximativement du moment où la réponse est renvoyée. |
request_id | NUMERIC | ID de requête entier généré automatiquement en fonction de la requête API. |
request_payload | STRING | Inclus pour la journalisation des modèles partenaires et la rétrocompatibilité avec le journal des requêtes et réponses des points de terminaison Vertex AI. |
response_payload | STRING | Inclus pour la journalisation des modèles partenaires et la rétrocompatibilité avec le journal des requêtes et réponses des points de terminaison Vertex AI. |
modèle | STRING | Nom de ressource du modèle. |
model_version | STRING | Version du modèle. Il s'agit souvent de "default" pour les modèles Gemini. |
api_method | STRING | generateContent, streamGenerateContent, rawPredict, streamRawPredict |
full_request | JSON | L'intégralité de GenerateContentRequest . |
full_response | JSON | L'intégralité de GenerateContentResponse . |
métadonnées | JSON | Toutes les métadonnées de l'appel, y compris la latence de la requête. |
otel_log | JSON | Journaux au format de schéma OpenTelemetry. Disponible uniquement si otel_logging est activé dans la configuration de la journalisation. |
Notez que les paires requête/réponse dont la taille dépasse la limite de 10 Mo par ligne de l'API BigQuery Write ne sont pas enregistrées.
Étapes suivantes
- Estimer les tarifs pour la journalisation des prédictions en ligne
- Déployez un modèle à l'aide de la console Google Cloud ou de l'API Vertex AI.
- Découvrez comment créer une table BigQuery.