Cette page décrit en détail comment assainir les requêtes et les réponses. Model Armor propose un ensemble de filtres pour protéger vos applications d'IA. Model Armor vérifie les requêtes et les réponses en fonction des niveaux de confiance de filtrage configurés.
Avant de commencer
Créez un modèle en suivant les instructions de la section Créer des modèles.
Obtenir les autorisations requises
Pour obtenir les autorisations nécessaires pour assainir les requêtes et les réponses, demandez à votre administrateur de vous accorder les rôles IAM suivants sur Model Armor :
-
Utilisateur Model Armor (
roles/modelarmor.user
) -
Lecteur Model Armor (
roles/modelarmor.viewer
)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activer les API
Vous devez activer les API Model Armor avant de pouvoir utiliser Model Armor.
Console
Enable the Model Armor API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Sélectionnez le projet dans lequel vous souhaitez activer Model Armor.
gcloud
Avant de commencer, suivez ces étapes à l'aide de la Google Cloud CLI avec l'API Model Armor :
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande suivante pour définir le point de terminaison de l'API pour le service Model Armor.
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
Remplacez
LOCATION
par la région dans laquelle vous souhaitez utiliser Model Armor.SDP_PROJECT_ID
: ID du projet auquel appartient le modèle Sensitive Data Protection avancé.PROJECT_NUMBER
: numéro du projet auquel appartient le modèle.PROJECT_ID
: ID du projet pour le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.PROJECT_ID
: ID du projet pour le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.FILE_TYPE
: format du fichier d'entrée.CREDIT_CARD_NUMBER
: un numéro de carte de crédit comporte de 12 à 19 chiffres. Il est utilisé pour les transactions de paiement dans le monde entier.FINANCIAL_ACCOUNT_NUMBER
: numéro de compte financier spécifique, par exemple un numéro de compte bancaire ou de compte de retraite.GCP_CREDENTIALS
: identifiants du compte de service Google Cloud . Ils peuvent être utilisés pour l'authentification via les comptes de service et {api_client_lib_name}.GCP_API_KEY
: clé API Google Cloud . Chaîne chiffrée utilisée lors de l'appel d'API Google Cloud qui n'ont pas besoin d'accéder à des données utilisateur privées.PASSWORD
: mots de passe en texte clair figurant dans les configurations, le code et autres textes.US_SOCIAL_SECURITY_NUMBER
: Aux États-Unis, un numéro de sécurité sociale (SSN) composé de neuf chiffres est attribué aux citoyens américains, aux résidents permanents et aux résidents temporaires. Ce détecteur ne fera pas correspondre les numéros dont l'un des groupes de chiffres ne comporte que des zéros (c'est-à-dire 000-##-####, ###-00-####, ou ###-##-0000), les numéros dont le premier groupe de chiffres est 666, ou les numéros dont le premier chiffre est 9.US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
: un numéro ITIN (Individual Taxpayer Identification Number) est un type de numéro d'identification fiscale (TIN, Tax Identification Number) émis par l'Internal Revenue Service (IRS). Un ITIN est un numéro de traitement fiscal spécifique, utilisé uniquement pour les étrangers non-résidents et résidents (ainsi que leurs conjoints et les personnes à leur charge) qui ne peuvent pas bénéficier d'un numéro de sécurité sociale (SSN).TEMPLATE_ID
: ID du modèle.LOCATION
: emplacement du modèle.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.TEMPLATE_ID
: ID du modèle.LOCATION
: emplacement du modèle.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.Cet exemple renvoie la réponse suivante :
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "rai": { "raiFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "raiFilterTypeResults": { "dangerous": { "confidenceLevel": "MEDIUM_AND_ABOVE", "matchState": "MATCH_FOUND" }, "sexually_explicit": { "matchState": "NO_MATCH_FOUND" }, "hate_speech": { "matchState": "NO_MATCH_FOUND" }, "harassment": { "matchState": "NO_MATCH_FOUND" } } } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "malicious_uris": { "maliciousUriFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, } } }
PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.- En savoir plus sur Model Armor
- En savoir plus sur les paramètres de plancher Model Armor
- En savoir plus sur les modèles Model Armor
- Résoudre les problèmes liés à Model Armor
Exécutez la commande suivante pour activer Model Armor.
gcloud services enable modelarmor.googleapis.com --project=PROJECT_ID
Remplacez PROJECT_ID
par l'ID du projet.
Dans le projet contenant le modèle Sensitive Data Protection, attribuez le rôle Utilisateur DLP (roles/dlp.user
) et le rôle Lecteur DLP (roles/dlp.reader
) à l'agent de service créé dans l'étape "Protection avancée des données sensibles" de Créer des modèles.
Ignorez cette étape si le modèle de protection des données sensibles se trouve dans le même projet que le modèle Model Armor.
gcloud projects add-iam-policy-binding SDP_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role=roles/dlp.user gcloud projects add-iam-policy-binding SDP_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role=roles/dlp.reader
Remplacez les éléments suivants :
Nettoyer les requêtes
Nettoyez les requêtes pour éviter les entrées malveillantes et vous assurer que des requêtes sécurisées et appropriées sont envoyées à vos LLM.
Requêtes textuelles
Model Armor assainit les requêtes textuelles en analysant le texte et en appliquant différents filtres pour identifier et atténuer les menaces potentielles.
REST
Utilisez la commande suivante pour assainir une requête textuelle dans Model Armor.
curl -X POST \
-d '{"userPromptData":{"text":"[UNSAFE TEXT]"}}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Remplacez les éléments suivants :
Cela génère la réponse suivante. Notez que MATCH_FOUND
se trouve dans la catégorie "Dangereux".
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "malicious_uris": { "maliciousUriFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "rai": { "raiFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "raiFilterTypeResults": { "sexually_explicit": { "matchState": "NO_MATCH_FOUND" }, "hate_speech": { "matchState": "NO_MATCH_FOUND" }, "harassment": { "matchState": "NO_MATCH_FOUND" }, "dangerous": { "matchState": "MATCH_FOUND" } } } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } } } } } }
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Model Armor pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Model Armor pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js et installez le SDK Model Armor pour Node.js.
PHP
Pour exécuter ce code, commencez par configurer un environnement de développement PHP et installez le SDK Model Armor pour PHP.
Python
Pour exécuter ce code, configurez un environnement de développement Python et installez le SDK Model Armor pour Python.
Cela génère la réponse suivante.
sanitization_result { filter_match_state: MATCH_FOUND filter_results { key: "rai" value { rai_filter_result { execution_state: EXECUTION_SUCCESS match_state: MATCH_FOUND rai_filter_type_results { key: "dangerous" value { confidence_level: HIGH match_state: MATCH_FOUND } } } } } filter_results { key: "pi_and_jailbreak" value { pi_and_jailbreak_filter_result { execution_state: EXECUTION_SUCCESS match_state: MATCH_FOUND confidence_level: HIGH } } } filter_results { key: "malicious_uris" value { malicious_uri_filter_result { execution_state: EXECUTION_SUCCESS match_state: NO_MATCH_FOUND } } } filter_results { key: "csam" value { csam_filter_filter_result { execution_state: EXECUTION_SUCCESS match_state: NO_MATCH_FOUND } } } invocation_result: SUCCESS }
Nettoyer les requêtes textuelles avec la détection multilingue activée
Activez la détection multilingue pour chaque requête en définissant le flag enableMultiLanguageDetection
sur true
pour chaque requête individuelle.
Vous pouvez éventuellement spécifier la langue source pour obtenir des résultats plus précis. Si la langue source n'est pas spécifiée, elle est automatiquement détectée pour permettre la prise en charge multilingue.
Utilisez la commande suivante pour assainir une invite de texte dans Model Armor avec la détection multilingue activée au niveau de la requête.
curl -X POST \ -d '{"userPromptData":{"text":"[UNSAFE TEXT]"}, "multiLanguageDetectionMetadata": { "enableMultiLanguageDetection": true , "sourceLanguage": "jp"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Remplacez les éléments suivants :
Requêtes basées sur des fichiers
Pour assainir une requête stockée dans un fichier, fournissez le contenu du fichier au format base64. Model Armor ne détecte pas automatiquement le type de fichier. Vous devez définir explicitement le champ byteDataType
pour indiquer le format du fichier. Si le champ est manquant ou non spécifié, la requête échoue. Les valeurs byteDataType
possibles sont PLAINTEXT_UTF8
, PDF
, WORD_DOCUMENT
, EXCEL_DOCUMENT
, POWERPOINT_DOCUMENT
, TXT
et CSV
.
REST
curl -X POST \ -d "$(jq -n \ --arg data "$(base64 -w 0 -i sample.pdf)" \ '{userPromptData: {byteItem: {byteDataType: "FILE_TYPE", byteData: $data}}}')" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Remplacez les éléments suivants :
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Model Armor pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Model Armor pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js et installez le SDK Model Armor pour Node.js.
PHP
Pour exécuter ce code, commencez par configurer un environnement de développement PHP et installez le SDK Model Armor pour PHP.
Python
Pour exécuter ce code, configurez un environnement de développement Python et installez le SDK Model Armor pour Python.
Configuration de base de la protection des données sensibles
Model Armor s'intègre à la protection des données sensibles pour éviter l'exposition accidentelle d'informations privées. Créez un modèle avec les paramètres de base de la protection des données sensibles activés. La protection de base des données sensibles vous aide à filtrer un ensemble fixe d'infoTypes de protection des données sensibles.
Les infoTypes de protection des données sensibles suivants sont analysés dans l'invite pour toutes les régions :
Les infoTypes Sensitive Data Protection supplémentaires suivants sont analysés dans la requête pour les régions basées aux États-Unis :
Voici un exemple de configuration de base de la protection des données sensibles :
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --project=PROJECT_ID \ --basic-config-filter-enforcement=enabled
Remplacez les éléments suivants :
REST
export FILTER_CONFIG_SDP_BASIC='{ "filterConfig": { "sdpSettings": { "basicConfig": { "filterEnforcement": "ENABLED" } } } }' curl -X PATCH \ -d "$FILTER_CONFIG_SDP_BASIC" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?updateMask=filterConfig.sdpSettings.basicConfig.filterEnforcement"
Remplacez les éléments suivants :
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Model Armor pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Model Armor pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js et installez le SDK Model Armor pour Node.js.
PHP
Pour exécuter ce code, commencez par configurer un environnement de développement PHP et installez le SDK Model Armor pour PHP.
Python
Pour exécuter ce code, configurez un environnement de développement Python et installez le SDK Model Armor pour Python.
Utilisez le modèle créé pour filtrer vos requêtes. Exemple :
curl -X POST \ -d '{"userPromptData":{"text":"can you remember my ITIN : ###-##-####"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Remplacez les éléments suivants :
Cet exemple renvoie la réponse suivante :
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": [ { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "findings": [ { "infoType": "US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER", "likelihood": "LIKELY", "location": { "byteRange": { "start": "26", "end": "37" }, "codepointRange": { "start": "26", "end": "37" } } } ] } } } ] } }
Configuration avancée de la protection des données sensibles
Model Armor filtre les prompts et les réponses des LLM à l'aide du paramètre de configuration avancée de protection des données sensibles. Cela vous permet d'utiliser les fonctionnalités de protection des données sensibles au-delà des infoTypes proposés dans le paramètre de base de protection des données sensibles.
Pour utiliser le filtre avancé Sensitive Data Protection dans Model Armor, les modèles Sensitive Data Protection doivent se trouver au même emplacement cloud que le modèle Model Armor.
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --advanced-config-inspect-template="path/to/template" \
Remplacez les éléments suivants :
REST
export FILTER_CONFIG_SDP_ADV='{ "filterConfig": { "sdpSettings": { "advancedConfig": { "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address", "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/inspect-ip-address" } } } }' curl -X POST \ -d "$FILTER_CONFIG_SDP_ADV" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?updateMask=filterConfig.sdpSettings.advancedConfig"
Remplacez les éléments suivants :
Cet exemple renvoie la réponse suivante :
{ "name": "projects/PROJECT_ID/locations/LOCATION/templates/all-filters-test", "createTime": "2024-12-16T17:08:19.626693819Z", "updateTime": "2024-12-16T17:08:19.626693819Z", "filterConfig": { "sdpSettings": { "advancedConfig": { "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address", "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/inspect-ip-address" } } } }
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Model Armor pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Model Armor pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js et installez le SDK Model Armor pour Node.js.
PHP
Pour exécuter ce code, commencez par configurer un environnement de développement PHP et installez le SDK Model Armor pour PHP.
Python
Pour exécuter ce code, configurez un environnement de développement Python et installez le SDK Model Armor pour Python.
Utilisez le modèle créé pour filtrer vos requêtes. Exemple :
curl -X POST \ -d '{"userPromptData":{"text":"is there anything malicious running on 1.1.1.1?"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Remplacez les éléments suivants :
Cet exemple renvoie la réponse suivante :
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": [ { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, { "sdpFilterResult": { "deidentifyResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "data": { "text": "is there anything malicious running on [IP_ADDRESS]?" }, "transformedBytes": "7", "infoTypes": ["IP_ADDRESS"] } } } ] } }
Nettoyer la réponse du modèle
Les LLM peuvent parfois générer des réponses dangereuses. Pour réduire les risques associés à l'utilisation de LLM dans vos applications, il est important de nettoyer leurs réponses.
Voici un exemple de commande permettant de nettoyer une réponse du modèle dans Model Armor.
REST
curl -X POST \
-d '{"text":"IP address of the current network is ##.##.##.##"}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeModelResponse"
Remplacez les éléments suivants :
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Model Armor pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Model Armor pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js et installez le SDK Model Armor pour Node.js.
PHP
Pour exécuter ce code, commencez par configurer un environnement de développement PHP et installez le SDK Model Armor pour PHP.
Python
Pour exécuter ce code, configurez un environnement de développement Python et installez le SDK Model Armor pour Python.
Nettoyer la réponse du modèle avec la détection multilingue activée
Activez la détection multilingue pour chaque requête en définissant le flag enableMultiLanguageDetection
sur true
pour chaque réponse individuelle.
Vous pouvez éventuellement spécifier la langue source pour obtenir des résultats plus précis. Si la langue source n'est pas spécifiée, elle est automatiquement détectée pour permettre la prise en charge multilingue.
curl -X POST \ -d '{"userPromptData":{"text":"[UNSAFE TEXT]"}, "multiLanguageDetectionMetadata": { "enableMultiLanguageDetection": true , "sourceLanguage": "jp"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeModelResponse"
Remplacez les éléments suivants :
Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/10 (UTC).