Model Armor 可以使用下限设置或使用模板直接集成到 Vertex AI 中。将 Model Armor 集成到 Vertex AI 中后,您可以过滤发送到 Gemini 模型的请求和来自 Gemini 模型的回答,并检查或阻止违反下限设置阈值的请求或回答。Model Armor 可为 generateContent
方法提供 Vertex AI 中的 Gemini API 中的提示和回答保护。您需要启用 Cloud Logging,才能查看提示和回答的清理结果。此集成支持的位置包括 us-central1
、us-east4
、us-west1
和 europe-west4
。在预览版期间,使用此集成无需支付任何费用。如需了解价格信息,请参阅 Model Armor 价格。
准备工作
向 Model Armor 用户授予对 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'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目 ID。PROJECT_NUMBER
:您的 Google Cloud 项目编号。
配置下限设置
您可以使用下限设置来配置 Model Armor 模板的最低检测阈值。这些设置用于验证所有新模板和修改的模板是否符合下限政策要求。
在配置下限设置之前,请考虑以下事项:
- 可以在组织、文件夹和项目级设置下限设置。界面仅适用于项目级下限设置。如需在组织或文件夹级设置下限设置,您必须使用 API。
- 该界面仅在项目级提供,可让您继承组织或文件夹级设置。
如需配置下限设置,请参阅配置下限设置。
如需配置与 Vertex AI 集成的下限设置,请运行以下命令:
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"
将 PROJECT_ID
替换为下限设置的项目 ID。
配置下限设置以启用 Vertex AI 清理后,Model Armor 会使用指定的过滤设置清理对项目 Gemini 端点的所有 generateContent
API 调用。
以下代码示例展示了如何使用 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 } }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目 ID。LOCATION
:Gemini 端点的 Google Cloud 位置。如需了解支持的位置,请参阅 Model Armor API 的位置。
以下代码示例展示了来自 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" }
配置 Model Armor 模板
Model Armor 还可以使用 Model Armor 模板与 Vertex AI 集成。借助模板,您可以配置 Model Armor 过滤提示和回答的方式,并定义安全过滤器的配置。
您必须先创建模板,然后将这些模板与 Gemini 的 generateContent
方法搭配使用。如需详细了解模板,请参阅创建和管理 Model Armor 模板。
配置 Model Armor 模板后,在使用 generateContent
方法调用 Gemini API 时,请将模板 ID 作为参数传递。Vertex AI 会将请求路由到 Model Armor 以进行处理。
以下代码示例展示了对 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" } }'
替换以下内容:
PROJECT_ID
: Google Cloud 项目 ID。LOCATION
:Gemini 端点的 Google Cloud 位置。支持的位置包括us-central1
、us-east4
、us-west1
和europe-west4
。TEMPLATE_ID
:Model Armor 模板 ID。
以下代码示例展示了来自 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" }