Model Armor peut être directement intégré à Vertex AI à l'aide des paramètres de seuil ou des modèles. Model Armor s'intègre à Vertex AI pour filtrer les requêtes envoyées aux modèles Gemini et les réponses reçues. Il inspecte ou bloque le trafic qui ne respecte pas les paramètres de plancher.
Model Armor assure la protection des requêtes et des réponses dans l'API Gemini de Vertex AI pour la méthode generateContent.
Vous devez activer Cloud Logging pour obtenir de la visibilité sur les résultats de la désinfection des requêtes et des réponses.
Avant de commencer
Accordez à l'utilisateur Model Armor l'autorisation d'accéder au compte de service Vertex AI.
gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com' --role='roles/modelarmor.user'
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .PROJECT_NUMBER: numéro de votre projet Google Cloud .
Configurer les paramètres de plancher
Vous utilisez les paramètres de plancher pour configurer les seuils de détection minimaux pour les modèles Model Armor. Ces paramètres permettent de vérifier que tous les modèles nouveaux et modifiés respectent les exigences liées aux paramètres de plancher.
Pour activer l'intégration de Model Armor et Vertex AI, vous ne pouvez définir les paramètres de plancher qu'au niveau du projet à l'aide de l'API ou de la console Google Cloud .
Pour configurer les paramètres de plancher, consultez Configurer les paramètres de plancher.
Pour configurer les paramètres de plancher avec l'intégration de Vertex AI, exécutez la commande suivante :
curl -X PATCH \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{"filterConfig" : {}, "integratedServices": "AI_PLATFORM", "aiPlatformFloorSetting":{"inspect_only":true, "enableCloudLogging":true}}' \ "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
Remplacez PROJECT_ID par l'ID du projet pour les paramètres de plancher.
Une fois les paramètres de base configurés pour activer la désinfection Vertex AI, Model Armor désinfecte tous les appels d'API generateContent vers les points de terminaison Gemini du projet à l'aide des paramètres de filtrage spécifiés.
L'exemple de code suivant montre comment utiliser la méthode generateContent.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.0-flash-001:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "" } ] } ] , "generationConfig": { "responseModalities": ["TEXT"] ,"temperature": 0.2 ,"maxOutputTokens": 1024 ,"topP": 0.8 } }'
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .LOCATION: emplacement Google Cloud du point de terminaison Gemini. Pour connaître les emplacements acceptés, consultez Emplacements pour l'API Model Armor.
L'exemple de code suivant montre la réponse de la méthode generateContent.
{ "promptFeedback": { "blockReason": "MODEL_ARMOR", "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters." }, "usageMetadata": { "trafficType": "ON_DEMAND" }, "modelVersion": "gemini-2.0-flash-001", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
Définir le type d'application pour les paramètres de plancher
Pour configurer la façon dont Model Armor gère les détections, définissez le type d'application.
L'exemple suivant montre la configuration des paramètres de plancher avec le type d'application Inspect and block.
export FLOOR_SETTING='{ "filter_config": { "rai_settings": { "rai_filters": { "filter_type": "HATE_SPEECH", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "DANGEROUS", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "SEXUALLY_EXPLICIT", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "HARASSMENT", "confidence_level": "LOW_AND_ABOVE" } }, "sdpSettings": { "basicConfig": { "filterEnforcement": "ENABLED" } }, "piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED", "confidenceLevel": "LOW_AND_ABOVE" }, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" } }, "integratedServices": [ "AI_PLATFORM" ], "aiPlatformFloorSetting": { "inspectAndBlock": true, "enableCloudLogging": true }, "enable_floor_setting_enforcement": "true" }' curl -X POST \ -d "$FLOOR_SETTING" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/floorSetting"
Remplacez les éléments suivants :
PROJECT_ID: ID du projet pour les paramètres de l'étage.LOCATION: emplacement des paramètres de plancher.
Configurer les modèles Model Armor
Model Armor peut également être intégré à Vertex AI à l'aide de modèles Model Armor. Les modèles vous permettent de configurer la façon dont Model Armor analyse les requêtes et les réponses, et de définir les configurations des filtres de sécurité.
Vous devez d'abord créer des modèles, puis les utiliser avec la méthode generateContent de Gemini. Pour en savoir plus sur les modèles, consultez Créer et gérer des modèles Model Armor.
Après avoir configuré le modèle Model Armor, transmettez l'ID du modèle en tant que paramètre lorsque vous appelez l'API Gemini à l'aide de la méthode generateContent. Vertex AI acheminera la requête vers Model Armor pour traitement.
L'exemple de code suivant montre la requête envoyée à la méthode generateContent.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/gemini-2.0-flash-001:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "" } ] } ] , "generationConfig": { "responseModalities": ["TEXT"] ,"temperature": 0.2 ,"maxOutputTokens": 1024 ,"topP": 0.8 }, "model_armor_config": { "prompt_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID", "response_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID" } }'
Remplacez les éléments suivants :
PROJECT_ID: ID du projet Google Cloud .LOCATION: emplacement Google Cloud du point de terminaison Gemini. Les emplacements acceptés sontus-central1,us-east4,us-west1eteurope-west4.TEMPLATE_ID: ID du modèle Model Armor.
L'exemple de code suivant montre la réponse de la méthode generateContent.
{ "promptFeedback": { "blockReason": "MODEL_ARMOR", "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters." }, "usageMetadata": { "trafficType": "ON_DEMAND" }, "modelVersion": "gemini-2.0-flash-001", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
Remarques
Tenez compte des points suivants lorsque vous intégrez Model Armor à Vertex AI :
- La rédaction Sensitive Data Protection pour le modèle d'anonymisation n'est pas prise en charge.
- La désinfection des requêtes et des réponses contenant des documents n'est pas prise en charge.
Vertex AI ignore l'étape de désinfection Model Armor et continue de traiter la requête dans les conditions suivantes :
- Model Armor n'est pas disponible dans une région où Vertex AI est présent.
- Model Armor est temporairement inaccessible.
- Une erreur se produit dans Model Armor.
Dans tous ces cas, des requêtes ou des réponses non filtrées peuvent parfois être exposées, car la demande se poursuit sans assainissement des requêtes et des réponses.