O Model Armor pode ser integrado diretamente no Vertex AI através das definições mínimas ou dos modelos. O Model Armor integra-se com o Vertex AI para analisar os pedidos enviados e as respostas recebidas dos modelos Gemini. Inspecciona ou bloqueia o tráfego que viola as definições de limite mínimo.
O Model Armor oferece proteção de comandos e respostas na API Gemini no Vertex AI para o método generateContent.
Tem de ativar o Cloud Logging para ter visibilidade dos resultados da higienização de comandos e respostas.
Antes de começar
Conceda a autorização do utilizador do Model Armor à conta de serviço do Vertex AI.
gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com' --role='roles/modelarmor.user'
Substitua o seguinte:
PROJECT_ID: o ID do seu Google Cloud projeto.PROJECT_NUMBER: o número do seu Google Cloud projeto.
Configure as definições do piso
Use as definições de preço mínimo para configurar os limites mínimos de deteção para modelos do Model Armor. Estas definições validam se todos os modelos novos e modificados cumprem os requisitos das definições do limite mínimo.
Para ativar o Model Armor e a integração do Vertex AI, pode definir as definições de limite mínimo apenas ao nível do projeto através da API ou da Google Cloud consola.
Para configurar as definições de preços mínimos, consulte o artigo Configure as definições de preços mínimos.
Para configurar as definições de limite mínimo com a integração do Vertex AI, execute o seguinte comando:
curl -X PATCH \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{"filterConfig" : {}, "integratedServices": "AI_PLATFORM", "aiPlatformFloorSetting":{"inspect_only":true, "enableCloudLogging":true}}' \ "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
Substitua PROJECT_ID pelo ID do projeto para as definições de limite mínimo.
Depois de configurar as definições de limite mínimo para ativar a higienização da Vertex AI, o Model Armor higieniza todas as chamadas da API generateContent para os pontos finais do Gemini do projeto através das definições de filtro especificadas.
O seguinte exemplo de código mostra como usar o método generateContent.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.0-flash-001:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "" } ] } ] , "generationConfig": { "responseModalities": ["TEXT"] ,"temperature": 0.2 ,"maxOutputTokens": 1024 ,"topP": 0.8 } }'
Substitua o seguinte:
PROJECT_ID: o ID do seu Google Cloud projeto.LOCATION: a Google Cloud localização do ponto final do Gemini. Para ver as localizações suportadas, consulte o artigo Localizações para a API Model Armor.
O seguinte exemplo de código mostra a resposta do método generateContent.
{ "promptFeedback": { "blockReason": "MODEL_ARMOR", "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters." }, "usageMetadata": { "trafficType": "ON_DEMAND" }, "modelVersion": "gemini-2.0-flash-001", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
Defina o tipo de aplicação para as definições de limite mínimo
Para configurar a forma como o Model Armor processa as deteções, defina o tipo de aplicação.
O exemplo seguinte mostra a configuração das definições de limite mínimo com o tipo de aplicação Inspect and block.
export FLOOR_SETTING='{ "filter_config": { "rai_settings": { "rai_filters": { "filter_type": "HATE_SPEECH", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "DANGEROUS", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "SEXUALLY_EXPLICIT", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "HARASSMENT", "confidence_level": "LOW_AND_ABOVE" } }, "sdpSettings": { "basicConfig": { "filterEnforcement": "ENABLED" } }, "piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED", "confidenceLevel": "LOW_AND_ABOVE" }, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" } }, "integratedServices": [ "AI_PLATFORM" ], "aiPlatformFloorSetting": { "inspectAndBlock": true, "enableCloudLogging": true }, "enable_floor_setting_enforcement": "true" }' curl -X POST \ -d "$FLOOR_SETTING" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/floorSetting"
Substitua o seguinte:
PROJECT_ID: o ID do projeto para as definições de limite mínimo.LOCATION: a localização das definições de preço mínimo.
Configure modelos do Model Armor
O Model Armor também pode ser integrado com o Vertex AI através de modelos do Model Armor. Os modelos permitem-lhe configurar a forma como o Model Armor analisa os comandos e as respostas, e definem as configurações dos filtros de segurança.
Primeiro, tem de criar modelos e, em seguida, usá-los com o método generateContent do Gemini. Para mais informações sobre modelos,
consulte o artigo Crie e faça a gestão de modelos do Model Armor.
Depois de configurar o modelo Model Armor, transmita o ID do modelo como um parâmetro quando fizer uma chamada à API Gemini através do método generateContent. O Vertex AI encaminha o pedido para o Model Armor para processamento.
O seguinte exemplo de código mostra o pedido ao método generateContent.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/gemini-2.0-flash-001:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "" } ] } ] , "generationConfig": { "responseModalities": ["TEXT"] ,"temperature": 0.2 ,"maxOutputTokens": 1024 ,"topP": 0.8 }, "model_armor_config": { "prompt_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID", "response_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID" } }'
Substitua o seguinte:
PROJECT_ID: o Google Cloud ID do projeto.LOCATION: a Google Cloud localização do ponto final do Gemini. As localizações suportadas sãous-central1,us-east4,us-west1eeurope-west4.TEMPLATE_ID: ID do modelo do Model Armor.
O seguinte exemplo de código mostra a resposta do método generateContent.
{ "promptFeedback": { "blockReason": "MODEL_ARMOR", "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters." }, "usageMetadata": { "trafficType": "ON_DEMAND" }, "modelVersion": "gemini-2.0-flash-001", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
Considerações
Considere o seguinte ao integrar o Model Armor com o Vertex AI:
- A ocultação da proteção de dados confidenciais para o modelo de desidentificação não é suportada.
- A limpeza de comandos e respostas que contêm documentos não é suportada.
A Vertex AI ignora o passo de higienização do Model Armor e continua a processar o pedido nas seguintes condições:
- O Model Armor não está disponível numa região onde o Vertex AI está presente.
- O Model Armor está temporariamente inacessível.
- Ocorre um erro no Model Armor.
Todas estas instâncias podem, ocasionalmente, expor comandos ou respostas não filtrados, uma vez que o pedido continua sem a higienização de comandos e respostas.