Integração do Model Armor com o Vertex AI

O Model Armor pode ser integrado diretamente no Vertex AI através das definições mínimas ou dos modelos. A integração do Model Armor no Vertex AI permite-lhe filtrar pedidos enviados e respostas dos modelos Gemini, bem como inspecionar ou bloquear pedidos ou respostas se violarem os limites das definições mínimas. 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. As localizações suportadas para esta integração são us-central1, us-east4, us-west1 e europe-west4. Durante a pré-visualização, não existe nenhum custo para usar esta integração. Para ver informações sobre preços, consulte os preços do Model Armor.

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 limite 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 da política de limites mínimos.

Antes de configurar as definições do limite mínimo, considere o seguinte:

  • As definições de piso podem ser definidas ao nível da organização, da pasta e do projeto. A interface do utilizador só está disponível para as definições de limite mínimo ao nível do projeto. Para definir as definições de limite mínimo ao nível da organização ou da pasta, tem de usar a API.
  • A interface do utilizador só está disponível ao nível do projeto e permite-lhe herdar as definições ao nível da organização ou da pasta.

Para configurar as definições do limite mínimo, consulte o artigo Configure as definições do limite mínimo.

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"
}

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 filtra comandos e respostas, e definem configurações de filtros de segurança.

Primeiro, tem de criar modelos e, em seguida, usar estes modelos 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. A 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ão us-central1, us-east4, us-west1 e europe-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"
}