Model Armor vérifie les requêtes et les réponses pour les niveaux de confiance de filtrage configurés. Cette page explique en détail comment nettoyer les requêtes et les réponses.
Avant de commencer, créez un modèle en suivant les instructions de la section Créer des modèles.
Nettoyer les requêtes
Model Armor nettoie les requêtes au format texte et au format basé sur des fichiers.
Requêtes textuelles
Utilisez cette commande pour nettoyer une requête textuelle dans Model Armor. Utilisez le modèle (ma-template-id-1234) que nous avons créé à l'étape 7 (Protection des données sensibles avancée) de la section Créer des modèles.
curl -X POST \ -d "{user_prompt_data: { text: 'How do I make a bomb?' } }" \ -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 :
gcloud auth print-access-token
est le jeton d'accès du compte spécifié.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.
Vous obtenez la réponse suivante. Notez que MATCH_FOUND
appartient à la catégorie "Dangereux".
{
"sanitizationResult": {
"filterMatchState": "NO_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"
}
}
}
}
}
}
Configuration de base de la protection des données sensibles
Créez un modèle avec les paramètres de base de la protection des données sensibles activés. La protection des données sensibles de base vous aide à filtrer les infoTypes de protection des données sensibles suivants:
CREDIT_CARD_NUMBER
: un numéro de carte de crédit comporte de 12 à 19 chiffres. Ils sont utilisés pour le règlement des transactions dans le monde entier.US_SOCIAL_SECURITY_NUMBER
: aux États-Unis, un numéro de sécurité sociale (SSN) est un numéro à neuf chiffres 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.FINANCIAL_ACCOUNT_NUMBER
: numéro faisant référence à un compte financier spécifique (par exemple, un numéro de compte bancaire ou un numéro de compte de retraite).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'IRS (Internal Revenue Service). 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).GCP_CREDENTIALS
: Google Cloud identifiants du compte de service. Identifiants permettant de s'authentifier auprès de comptes de service et de bibliothèques clientes d'API Google.GCP_API_KEY
: Google Cloud clé API. 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.
Voici un exemple de configuration de base de la protection des données sensibles:
gcloud
gcloud alpha model-armor templates create template-name --location=location --basic-config-filter-enforcement=enabled
API REST
export FILTER_CONFIG_SDP_BASIC='{ "filterConfig": { "sdpSettings": { "basicConfig": { "filterEnforcement": "ENABLED" } } } }' curl -X POST \ -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=sdp_basic"
Remplacez les éléments suivants :
gcloud auth print-access-token
est le jeton d'accès du compte spécifié.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.
Utilisez le modèle créé pour examiner vos requêtes. Exemple :
curl -X POST \
-d "{ user_prompt_data: { 'text': 'can you remember my ITIN : 988-86-1234'} }" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.us-central1.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/us-central1/templates/sdp_basic:sanitizeUserPrompt"
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 vous permet de filtrer les invites et les réponses du LLM à l'aide de modèles de protection des données sensibles à l'aide du paramètre de configuration avancé de la 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 protection des données sensibles de base.
Pour utiliser le filtre avancé de protection des données sensibles dans Model Armor, les modèles de protection des données sensibles doivent se trouver dans le même emplacement cloud que le modèle Model Armor, par exemple us-central1
dans ce cas.
gcloud
gcloud alpha model-armor templates create template-name --location=location \ --advanced-config-inspect-template="path/to/template"
API 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=sdp_advanced" # Result of CreateTemplate { "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" } } } }, service_agent_email: "service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com"
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.
Dans le projet contenant le modèle de protection des données sensibles, attribuez les rôles Utilisateur de la protection contre la perte de données (roles/dlp.user
) et Lecteur de la protection contre la perte de données (roles/dlp.reader
) à l'agent de service créé à l'étape 7 (Protection avancée des données sensibles) de la section Créer des modèles. Vous pouvez ignorer cette étape si le modèle de protection des données sensibles se trouve dans le même projet que le modèle Armor.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role roles/dlp.user gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role roles/dlp.reader
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet auquel appartient le modèle.
Utilisez le modèle créé pour examiner vos requêtes. Exemple :
curl -X POST \ -d "{ user_prompt_data: { '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 :
gcloud auth print-access-token
est le jeton d'accès du compte spécifié.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": [
{
"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"
}
}
}
]
}
}
Requêtes basées sur des fichiers
Utilisez cette commande pour nettoyer une invite utilisateur au format de fichier avec Model Armor.
Les fichiers doivent être transmis au format encodé Base64
.
curl -X POST \ -d "$(jq -n \ --arg data "$(base64 -w 0 -i sample.pdf)" \ '{userPromptData: {byteItem: {byteDataType: "PDF", 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 :
gcloud auth print-access-token
est le jeton d'accès du compte spécifié.PROJECT_ID
: ID du projet auquel appartient le modèle.LOCATION
: emplacement du modèle.TEMPLATE_ID
: ID du modèle.
Nettoyer la réponse du modèle
Voici un exemple de commande permettant de nettoyer une réponse de modèle dans Model Armor.
curl -X POST \
-d "{model_response_data: { text: 'It might hurt and cause pain' } }" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.us-central1.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/us-central1/templates/ma-template-id-1234:sanitizeModelResponse"
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"
}
},
}
}
}
Étape suivante
- Découvrez la présentation de Model Armor.
- Découvrez les concepts clés de Model Armor.
- Découvrez les paramètres de sol du modèle Armor.
- En savoir plus sur les modèles d'armure de modèle
- Résoudre les problèmes liés à Model Armor