Integración de Model Armor con Vertex AI

Model Armor se puede integrar directamente en Vertex AI con la configuración de nivel o con plantillas. La integración de Model Armor en Vertex AI te permite examinar las solicitudes enviadas a los modelos de Gemini y las respuestas que estos envían, así como inspeccionar o bloquear solicitudes o respuestas si incumplen los umbrales de configuración de límites. Model Armor proporciona protección de instrucciones y respuestas dentro de la API de Gemini en Vertex AI para el método generateContent. Debes habilitar Cloud Logging para obtener visibilidad de los resultados de la sanitización de las instrucciones y las respuestas. Las ubicaciones admitidas para esta integración son us-central1, us-east4, us-west1 y europe-west4. Mientras se encuentre en versión preliminar, no se cobrará por usar esta integración. Para obtener información sobre los precios, consulta Precios de Model Armor.

Antes de comenzar

Otorga 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'
  

Reemplaza lo siguiente:

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

Configuración de límites

Usas la configuración de límites para establecer los umbrales de detección mínimos de las plantillas de Model Armor. Estos parámetros de configuración verifican que todas las plantillas nuevas y modificadas cumplan con los requisitos de la política de límites.

Antes de configurar los límites, ten en cuenta lo siguiente:

  • Los parámetros de configuración de límites se pueden establecer a nivel de la organización, la carpeta y el proyecto. La interfaz de usuario solo está disponible para la configuración de pisos a nivel del proyecto. Para establecer la configuración de precios mínimos a nivel de la organización o la carpeta, debes usar la API.
  • La interfaz de usuario solo está disponible a nivel del proyecto y te permite heredar la configuración a nivel de la organización o la carpeta.

Para configurar los parámetros de límites, consulta cómo configurar los parámetros de límites.

Para configurar los ajustes de piso 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"

Reemplaza PROJECT_ID por el ID del proyecto para la configuración del piso.

Después de configurar los parámetros del piso para habilitar el saneamiento de Vertex AI, Model Armor sanea todas las llamadas a la API de generateContent a los extremos de Gemini del proyecto con la configuración del filtro especificada.

En el siguiente muestra de código, 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
}
}'

Reemplaza lo siguiente:

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

En el siguiente muestra de código, 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"
}

Configura plantillas de Model Armor

Model Armor también se puede integrar con Vertex AI a través de plantillas de Model Armor. Las plantillas te permiten configurar cómo Model Armor examina las instrucciones y las respuestas, y definen la configuración de los filtros de seguridad.

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

Después de configurar la plantilla de Model Armor, pasa el ID de la plantilla como un parámetro cuando realices una llamada a la API de Gemini con el método generateContent. Vertex AI enrutará la solicitud a Model Armor para su procesamiento.

En el siguiente muestra de código, 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"
    }
}'

Reemplaza lo siguiente:

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

En el siguiente muestra de código, 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"
}