Integración de Model Armor con Vertex AI

Model Armor se puede integrar directamente en Vertex AI mediante ajustes de suelo o plantillas. Al integrar Model Armor en Vertex AI, puedes cribar las solicitudes enviadas a los modelos de Gemini y las respuestas que recibes de ellos, así como inspeccionar o bloquear solicitudes o respuestas si infringen los umbrales de los ajustes mínimos. Model Armor ofrece protección de peticiones y respuestas en la API de Gemini en Vertex AI para el método generateContent. Debes habilitar Cloud Logging para ver los resultados de la anonimización de las peticiones y las respuestas. Las ubicaciones admitidas para esta integración son us-central1, us-east4, us-west1 y europe-west4. Durante la vista previa, no se cobra por usar esta integración. Para obtener información sobre los precios, consulta los precios de Model Armor.

Antes de empezar

Concede el permiso de usuario de Model Armor a la cuenta de servicio de 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'
  

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • PROJECT_NUMBER: tu número de proyecto Google Cloud .

Configurar los ajustes de la planta

Los ajustes de precio mínimo se usan para configurar los umbrales de detección mínimos de las plantillas de Model Armor. Estos ajustes verifican que todas las plantillas nuevas y modificadas cumplan los requisitos de la política de precios mínimos.

Antes de configurar los ajustes de la planta, ten en cuenta lo siguiente:

  • Los ajustes de planta se pueden definir a nivel de organización, carpeta y proyecto. La interfaz de usuario solo está disponible para los ajustes de planta a nivel de proyecto. Para definir los ajustes mínimos a nivel de organización o carpeta, debe usar la API.
  • La interfaz de usuario solo está disponible a nivel de proyecto y te permite heredar la configuración de la organización o de la carpeta.

Para configurar los ajustes de la planta, consulta Configurar los ajustes de la planta.

Para configurar los ajustes de planta con la integración de Vertex AI, ejecuta el siguiente 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"

Sustituye PROJECT_ID por el ID del proyecto de la configuración de la planta.

Después de configurar los ajustes de la planta para habilitar la anonimización de Vertex AI, Model Armor anonimiza todas las llamadas a la API generateContent a los endpoints de Gemini del proyecto con los ajustes de filtro especificados.

En el siguiente código de ejemplo se muestra cómo usar el 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
}
}'

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • LOCATION: la Google Cloud ubicación del endpoint de Gemini. Para ver las ubicaciones admitidas, consulta Ubicaciones de la API Model Armor.

En el siguiente código de ejemplo se muestra la respuesta del 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"
}

Configurar plantillas de Model Armor

Model Armor también se puede integrar con Vertex AI mediante plantillas de Model Armor. Las plantillas te permiten configurar cómo analiza Model Armor las peticiones y las respuestas, y definen las configuraciones de los filtros de seguridad.

Primero debes crear plantillas y, después, usarlas con el método generateContent de Gemini. Para obtener más información sobre las plantillas, consulta Crear y gestionar plantillas de Model Armor.

Después de configurar la plantilla Model Armor, pasa el ID de la plantilla como parámetro al hacer una llamada a la API Gemini con el método generateContent. Vertex AI dirigirá la solicitud a Model Armor para que la procese.

En el siguiente código de ejemplo se muestra la solicitud al 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"
    }
}'

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto. Google Cloud
  • LOCATION: la Google Cloud ubicación del endpoint de Gemini. Las ubicaciones admitidas son us-central1, us-east4, us-west1 y europe-west4.
  • TEMPLATE_ID: ID de plantilla de Model Armor.

En el siguiente código de ejemplo se muestra la respuesta del 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"
}