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 baseados em arquivos.
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:
PROJECT_ID
: o ID do projeto do modelo.LOCATION
: o local do modelo.TEMPLATE_ID
: o ID do modelo.
Isso resulta na seguinte resposta. Observe que MATCH_FOUND
está na
categoria "Perigosa".
{ "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" } } } } } }
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 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:
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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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 usar os recursos de proteção de dados sensíveis além dos infoTypes oferecidos na configuração básica da Proteção de Dados Sensíveis.
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 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
pelo 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:
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:
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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID: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.