Questa pagina descrive in dettaglio come sanificare i prompt e le risposte. Model Armor offre un insieme di filtri per proteggere le tue applicazioni di AI. Model Armor controlla i prompt e le risposte in base ai livelli di confidenza di screening configurati.
Prima di iniziare
Crea un modello seguendo le istruzioni riportate in Creare modelli.
Ottenere le autorizzazioni richieste
Per ottenere le autorizzazioni necessarie per sanificare i prompt e le risposte, chiedi all'amministratore di concederti i seguenti ruoli IAM su Model Armor:
-
Model Armor User (
roles/modelarmor.user
) -
Model Armor Viewer (
roles/modelarmor.viewer
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Abilita API
Prima di poter utilizzare Model Armor, devi abilitare le API 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.Seleziona il progetto in cui vuoi attivare Model Armor.
gcloud
Prima di iniziare, segui questi passaggi utilizzando Google Cloud CLI con 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.
Esegui questo comando per impostare l'endpoint API per il servizio Model Armor.
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
Sostituisci
LOCATION
con la regione in cui vuoi utilizzare Model Armor.SDP_PROJECT_ID
: l'ID del progetto a cui appartiene il modello avanzato di Sensitive Data Protection.PROJECT_NUMBER
: il numero del progetto a cui appartiene il modello.PROJECT_ID
: l'ID del progetto per il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.PROJECT_ID
: l'ID del progetto per il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.FILE_TYPE
: il formato del file di input.CREDIT_CARD_NUMBER
: il numero di una carta di credito può contenere da 12 a 19 cifre. Si utilizzano per eseguire transazioni di pagamento a livello globale.FINANCIAL_ACCOUNT_NUMBER
: Un numero che si riferisce a un conto finanziario specifico, ad esempio un numero di conto bancario o un numero di conto pensionistico.GCP_CREDENTIALS
: Google Cloud credenziali del service account. Credenziali che possono essere utilizzate per l'autenticazione con {api_client_lib_name} e service account.GCP_API_KEY
: Google Cloud chiave API. Una stringa criptata utilizzata quando vengono chiamate API Google Cloud che non richiedono l'accesso a dati utente privati.PASSWORD
: cancella le password in chiaro nelle configurazioni, nel codice e in altri contenuti testuali.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.US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
: un numero di identificazione del contribuente individuale (ITIN) degli Stati Uniti è un tipo di numero di identificazione del contribuente (TIN) emesso dall'Internal Revenue Service (IRS). Si tratta di un numero utilizzato a fini fiscali disponibile solo per alcuni stranieri residenti e non residenti, i loro coniugi e familiari a carico che non possono ottenere un numero di previdenza sociale (SSN).TEMPLATE_ID
: l'ID del modello.LOCATION
: la posizione del modello.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.TEMPLATE_ID
: l'ID del modello.LOCATION
: la posizione del modello.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.PROJECT_ID
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.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": { "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
: l'ID del progetto a cui appartiene il modello.LOCATION
: la posizione del modello.TEMPLATE_ID
: l'ID del modello.- Scopri di più su Model Armor.
- Scopri di più sulle impostazioni di base di Model Armor.
- Scopri di più sui modelli Model Armor.
- Risolvi i problemi di Model Armor.
Esegui questo comando per attivare Model Armor.
gcloud services enable modelarmor.googleapis.com --project=PROJECT_ID
Sostituisci PROJECT_ID
con l'ID del progetto.
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 nell'ambito del passaggio di protezione avanzata dei dati sensibili di
Crea modelli.
Salta questo passaggio se il modello Sensitive Data Protection si trova nello stesso progetto del modello 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
Sostituisci quanto segue:
Pulire i prompt
Sanitizza i prompt per impedire input dannosi e contribuire a garantire che vengano inviati prompt sicuri e appropriati ai tuoi LLM.
Prompt di testo
Model Armor sanifica i prompt di testo analizzando il testo e applicando diversi filtri per identificare e mitigare potenziali minacce.
REST
Utilizza il seguente comando per sanificare un prompt di testo in 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"
Sostituisci quanto segue:
Il risultato è la seguente risposta. Tieni presente che MATCH_FOUND
rientra nella
categoria Contenuti dannosi.
{ "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" } } } } } }
Vai
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Model Armor Go.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Model Armor.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Model Armor.
PHP
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo PHP e installare l'SDK PHP Model Armor.
Python
Per eseguire questo codice, configura un ambiente di sviluppo Python e installa l'SDK Python di Model Armor.
Il risultato è la seguente risposta.
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 }
Sanitizzare i prompt di testo con il rilevamento multilingue attivato
Abilita il rilevamento multilingue su base per richiesta impostando il flag
enableMultiLanguageDetection
su true
per ogni singola richiesta.
Se vuoi, puoi specificare la lingua di origine
per ottenere risultati più precisi. Se la lingua di origine non è specificata, viene rilevata automaticamente per fornire il supporto multilingue.
Utilizza il seguente comando per sanificare un prompt di testo in Model Armor con il rilevamento multilingue abilitato a livello di richiesta.
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"
Sostituisci quanto segue:
Prompt basati su file
Per sanificare un prompt archiviato in un file, fornisci i contenuti del file in formato base64. Model Armor non rileva automaticamente il tipo di file. Devi impostare esplicitamente il campo byteDataType
per indicare il formato del file. Se il campo non è presente o non è specificato, la richiesta non va a buon fine. I valori possibili di
byteDataType
sono PLAINTEXT_UTF8
, PDF
, WORD_DOCUMENT
,
EXCEL_DOCUMENT
, POWERPOINT_DOCUMENT
, TXT
e 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"
Sostituisci quanto segue:
Vai
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Model Armor Go.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Model Armor.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Model Armor.
PHP
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo PHP e installare l'SDK PHP Model Armor.
Python
Per eseguire questo codice, configura un ambiente di sviluppo Python e installa l'SDK Python di Model Armor.
Configurazione di base di Sensitive Data Protection
Model Armor si integra con la protezione dei dati sensibili per contribuire a prevenire l'esposizione accidentale di informazioni private. Crea un modello con le impostazioni di base di Sensitive Data Protection abilitate. La protezione dei dati sensibili di base ti aiuta a eseguire lo screening di un insieme fisso di infoType di Sensitive Data Protection.
I seguenti infoType di Sensitive Data Protection vengono scansionati nel prompt per tutte le regioni:
I seguenti infoType di Sensitive Data Protection aggiuntivi vengono scansionati nel prompt per le regioni con sede negli Stati Uniti:
Ecco un esempio di configurazione di base di Sensitive Data Protection:
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --project=PROJECT_ID \ --basic-config-filter-enforcement=enabled
Sostituisci quanto segue:
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"
Sostituisci quanto segue:
Vai
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Model Armor Go.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Model Armor.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Model Armor.
PHP
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo PHP e installare l'SDK PHP Model Armor.
Python
Per eseguire questo codice, configura un ambiente di sviluppo Python e installa l'SDK Python di Model Armor.
Utilizza il modello creato per esaminare i tuoi prompt. Ecco un esempio:
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"
Sostituisci quanto segue:
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 filtra i prompt e le risposte del modello LLM utilizzando l'impostazione di configurazione avanzata di Sensitive Data Protection. In questo modo puoi utilizzare le funzionalità di Sensitive Data Protection oltre agli infoType offerti nell'impostazione di base di Sensitive Data Protection.
Per utilizzare il filtro avanzato di Sensitive Data Protection in Model Armor, i modelli di Sensitive Data Protection devono trovarsi nella stessa posizione cloud del modello Model Armor.
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --advanced-config-inspect-template="path/to/template" \
Sostituisci quanto segue:
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"
Sostituisci quanto segue:
Questo esempio restituisce la seguente risposta:
{ "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" } } } }
Vai
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Model Armor Go.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Model Armor.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Model Armor.
PHP
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo PHP e installare l'SDK PHP Model Armor.
Python
Per eseguire questo codice, configura un ambiente di sviluppo Python e installa l'SDK Python di Model Armor.
Utilizza il modello creato per esaminare i tuoi prompt. Ecco un esempio:
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"
Sostituisci quanto segue:
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", "infoTypes": ["IP_ADDRESS"] } } } ] } }
Sanificare la risposta del modello
A volte gli LLM possono generare risposte dannose. Per ridurre i rischi associati all'utilizzo di LLM nelle tue applicazioni, è importante sanificare le loro risposte.
Ecco un esempio di comando per sanificare una risposta del modello in 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"
Sostituisci quanto segue:
Vai
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Model Armor Go.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Model Armor.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Model Armor.
PHP
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo PHP e installare l'SDK PHP Model Armor.
Python
Per eseguire questo codice, configura un ambiente di sviluppo Python e installa l'SDK Python di Model Armor.
Sanifica la risposta del modello con il rilevamento multilingue attivato
Attiva il rilevamento multilingue in base alla richiesta impostando il
flag enableMultiLanguageDetection
su true
per ogni risposta individuale.
Se vuoi, puoi specificare la
lingua di origine
per risultati più precisi. Se la lingua di origine non è specificata, viene rilevata automaticamente per fornire il supporto 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"
Sostituisci quanto segue:
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-09-10 UTC.