Model Armor controlla i prompt e le risposte per i livelli di affidabilità dello screening configurati. Questa pagina descrive in dettaglio come eseguire la sanitizzazione di prompt e risposte.
Prima di iniziare, crea un modello seguendo le istruzioni riportate in Creare modelli.
Pulisci i prompt
Model Armor esegue la sanitizzazione dei prompt in formati di testo e basati su file.
Prompt di testo
Utilizza questo comando per eseguire la sanificazione di un prompt di testo in Model Armor. Utilizza il modello (ma-template-id-1234) che abbiamo creato nel passaggio 7 - Protezione avanzata dei dati sensibili di Crea modelli.
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"
Sostituisci quanto segue:
gcloud auth print-access-token
è il token di accesso per l'account specificato.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.
La risposta è la seguente. Tieni presente che MATCH_FOUND
appartiene alla
categoria Pericoloso.
{
"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"
}
}
}
}
}
}
Configurazione di base di Sensitive Data Protection
Crea un modello con le impostazioni di Sensitive Data Protection di base abilitate. La funzionalità di base di Sensitive Data Protection ti aiuta a eseguire la ricerca dei seguenti infoType di Sensitive Data Protection:
CREDIT_CARD_NUMBER
: un numero di carta di credito è composto da 12 a 19 cifre. Si utilizzano per eseguire transazioni di pagamento a livello globale.US_SOCIAL_SECURITY_NUMBER
: il codice SSN (States Social Security) statunitense è un numero di previdenza sociale di 9 cifre rilasciato a cittadini statunitensi, residenti permanenti e residenti temporanei. Questo rilevatore non ricercherà la corrispondenza con numeri composti da soli zeri in uno dei gruppi di cifre (ossia 000-##-####, ###-00-#### o ###-##-0000), con numeri contenenti 666 nel primo gruppo di cifre o con numeri la cui cifra iniziale è 9.FINANCIAL_ACCOUNT_NUMBER
: un numero che fa riferimento a un conto finanziario specifico, ad esempio un numero di conto bancario o un numero di conto di previdenza.US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
: un Individual Taxpayer Identification Number (ITIN) degli Stati Uniti è un tipo di Tax Identification Number (TIN) emesso dall'Internal Revenue Service (IRS). L'ITIN è un numero utilizzato a fini fiscali disponibile solo per determinati non residenti e residenti, i loro coniugi e i loro a carico che non possono ottenere un numero di previdenza sociale (SSN).GCP_CREDENTIALS
: Google Cloud credenziali dell'account di servizio. Credenziali che possono essere utilizzate per l'autenticazione con librerie client API e account di servizio di Google.GCP_API_KEY
: Google Cloud chiave API. Una stringa criptata utilizzata quando vengono chiamate Google Cloud API che non richiedono l'accesso a dati utente privati.
Ecco un esempio di configurazione di base di Sensitive Data Protection:
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"
Sostituisci quanto segue:
gcloud auth print-access-token
è il token di accesso per l'account specificato.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.
Utilizza il modello creato per filtrare i prompt. Ecco un esempio:
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"
Questo esempio restituisce la seguente risposta:
{
"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"
}
}
}
]
}
}
}
]
}
}
Configurazione avanzata di Sensitive Data Protection
Model Armor ti consente di filtrare le richieste e le risposte dell'LLM utilizzando i modelli di Sensitive Data Protection con l'impostazione di configurazione avanzata di Sensitive Data Protection. In questo modo, puoi utilizzare le funzionalità di Sensitive Data Protection oltre gli infoType offerti nell'impostazione di base di Sensitive Data Protection.
Per utilizzare il filtro avanzato della protezione dei dati sensibili in Model Armor, i modelli di protezione dei dati sensibili devono essere nella stessa posizione cloud del modello di Model Armor, ad esempio us-central1
in questo caso.
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"
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.
Nel progetto contenente il modello Sensitive Data Protection, concedi il
ruolo Utente DLP (roles/dlp.user
)
e il ruolo Lettore DLP (roles/dlp.reader
)
all'agente di servizio creato nel passaggio 7 - Protezione avanzata dei dati sensibili di
Crea modelli. Puoi saltare questo passaggio se il modello Sensitive Data Protection si trova nello stesso progetto del modello Model 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
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto a cui appartiene il modello.
Utilizza il modello creato per filtrare i prompt. Ecco un esempio:
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"
Sostituisci quanto segue:
gcloud auth print-access-token
è il token di accesso per l'account specificato.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.
Questo esempio restituisce la seguente risposta:
{
"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"
}
}
}
]
}
}
Prompt basati su file
Utilizza questo comando per eseguire la sanitizzazione di un prompt utente nel formato file con Model Armor.
I file devono essere trasmessi nel formato codificato 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"
Sostituisci quanto segue:
gcloud auth print-access-token
è il token di accesso per l'account specificato.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.
Sanitizzare la risposta del modello
Ecco un esempio di comando per eseguire la sanitizzazione di una risposta del modello in 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"
Questo esempio restituisce la seguente risposta:
{
"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"
}
},
}
}
}
Passaggi successivi
- Scopri di più sulla panoramica di Model Armor.
- Scopri i concetti chiave di Model Armor.
- Scopri di più sulle impostazioni del limite di Model Armor.
- Scopri di più sui modelli di Model Armor.
- Risolvi i problemi di Model Armor.