O Model Armor verifica instruções e respostas para os níveis de confiança de triagem configurados. Esta página descreve como limpar comandos e respostas em detalhes.
Antes de começar, crie um modelo seguindo as instruções em Criar modelos.
Limpar comandos
O Model Armor higieniza comandos em formatos de texto e de arquivo.
Comandos de texto
Use este comando para limpar um comando de texto no Model Armor. Use o modelo (ma-template-id-1234) que criamos como parte da etapa 7: Proteção de dados sensíveis avançada em Criar modelos.
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"
Substitua:
gcloud auth print-access-token
é o token de acesso da conta especificada.PROJECT_ID
: o ID do projeto ao qual o modelo pertence.LOCATION
: o local do modelo.TEMPLATE_ID
: o ID do modelo.
Isso resulta na seguinte resposta. MATCH_FOUND
está na
categoria "Perigosa".
{
"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"
}
}
}
}
}
}
Configuração básica da Proteção de dados sensíveis
Crie um modelo com as configurações básicas de proteção de dados sensíveis ativadas. A Proteção de Dados Sensíveis básica ajuda você a identificar os seguintes infoTypes de Proteção de Dados Sensíveis:
CREDIT_CARD_NUMBER
: o número de um cartão de crédito tem de 12 a 19 dígitos. Eles são usados para transações de pagamento em todo o mundo.US_SOCIAL_SECURITY_NUMBER
: o CPF nos Estados Unidos é um número de nove dígitos emitido para cidadãos, residentes permanentes e temporários dos EUA. Este detector não fará a correspondência com números compostos apenas por zeros em qualquer grupo de dígitos (isto é, 000-##-####, ###-00-#### ou ###-##-0000), com 666 no primeiro grupo de dígitos ou com números que começam com 9.FINANCIAL_ACCOUNT_NUMBER
: um número referente a uma conta financeira específica, por exemplo, um número de conta bancária ou de aposentadoria.US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
: um Número de Identificação do Contribuinte Individual (ITIN, na sigla em inglês) dos Estados Unidos é um tipo de Número de Identificação Fiscal (TIN) emitido pelo Internal Revenue Service (IRS). O ITIN é um número de processamento fiscal disponível somente para determinados estrangeiros não residentes e residentes, seus cônjuges e dependentes que não podem ter um Número de Previdência Social (SSN).GCP_CREDENTIALS
: Google Cloud credenciais da conta de serviço. Credenciais que podem ser usadas para fazer a autenticação com as bibliotecas de cliente e as contas de serviço da API do Google.GCP_API_KEY
:chave de API Google Cloud . Uma string criptografada usada ao chamar APIs Google Cloud que não precisam acessar dados particulares do usuário.
Confira um exemplo de configuração básica da Proteção de dados sensíveis:
gcloud
gcloud alpha model-armor templates create template-name --location=location --basic-config-filter-enforcement=enabled
APIs 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"
Substitua:
gcloud auth print-access-token
é o token de acesso da conta especificada.PROJECT_ID
: o ID do projeto ao qual o modelo pertence.LOCATION
: o local do modelo.TEMPLATE_ID
: o ID do modelo.
Use o modelo criado para filtrar suas instruções. Veja um exemplo:
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"
Este exemplo retorna a seguinte resposta:
{
"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"
}
}
}
]
}
}
}
]
}
}
Configuração avançada da proteção de dados sensíveis
O Model Armor permite filtrar solicitações e respostas do LLM usando modelos de Proteção de dados sensíveis com a configuração avançada de Proteção de dados sensíveis. Isso permite que você use os recursos de proteção de dados sensíveis além dos infoTypes oferecidos na configuração básica.
Para usar o filtro avançado de Proteção de dados sensíveis no Model Armor, os modelos de Proteção de dados sensíveis precisam estar no mesmo local da nuvem que o modelo do Model Armor, por exemplo, us-central1
.
gcloud
gcloud alpha model-armor templates create template-name --location=location \ --advanced-config-inspect-template="path/to/template"
APIs 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"
Substitua:
PROJECT_ID
: o ID do projeto ao qual o modelo pertence.LOCATION
: o local do modelo.
No projeto que contém o modelo de Proteção de dados sensíveis, conceda a
função de usuário do DLP (roles/dlp.user
)
e a função de leitor do DLP (roles/dlp.reader
)
ao agente de serviço criado como parte da etapa 7: Proteção avançada de dados sensíveis em
Criar modelos. Você
pode pular esta etapa se o modelo de Proteção de dados sensíveis estiver no
mesmo projeto que o modelo de Proteção de modelos.
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
Substitua:
PROJECT_ID
: o ID do projeto ao qual o modelo pertence.
Use o modelo criado para filtrar suas instruções. Veja um exemplo:
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"
Substitua:
gcloud auth print-access-token
é o token de acesso da conta especificada.PROJECT_ID
: o ID do projeto ao qual o modelo pertence.LOCATION
: o local do modelo.TEMPLATE_ID
: o ID do modelo.
Este exemplo retorna a seguinte resposta:
{
"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"
}
}
}
]
}
}
Solicitações baseadas em arquivos
Use este comando para limpar um comando do usuário no formato de arquivo com o Model Armor.
Os arquivos precisam ser transmitidos no formato codificado 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"
Substitua:
gcloud auth print-access-token
é o token de acesso da conta especificada.PROJECT_ID
: o ID do projeto ao qual o modelo pertence.LOCATION
: o local do modelo.TEMPLATE_ID
: o ID do modelo.
Limpar a resposta do modelo
Confira um exemplo de comando para limpar uma resposta de modelo no 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"
Este exemplo retorna a seguinte resposta:
{
"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"
}
},
}
}
}
A seguir
- Saiba mais sobre a visão geral do Model Armor.
- Saiba mais sobre os principais conceitos do Model Armor.
- Saiba mais sobre as configurações de piso do Modelo Armor.
- Saiba mais sobre os modelos do Model Armor.
- Resolver problemas do Model Armor.