Model Armor 可以使用下限设置或使用模板直接集成到 Gemini Enterprise Agent Platform 中。Model Armor 与 Gemini Enterprise Agent Platform 相集成,可过滤发送到 Gemini 模型的请求和从 Gemini 模型收到的回答。它会检查或阻止违反最低出价设置的流量。
Model Armor 可为 generateContent 方法提供 Vertex AI 中的 Gemini API 的提示和回答保护。您需要启用 Cloud Logging,才能查看提示和回答的清理结果。
除了保护对 Gemini Enterprise Agent Platform 服务的直接 REST 调用之外,您还可以使用 Model Armor 来保护其他可访问 Vertex AI 中的 Gemini API 的接口,例如 Google Gen AI SDK 或 Firebase AI Logic SDK。
准备工作
向 Model Armor 用户授予对 Gemini Enterprise Agent Platform 服务账号的权限。
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 模板的最低检测阈值。这些设置用于验证所有新模板和修改后的模板是否符合下限设置要求。
如需启用 Model Armor 和 Gemini Enterprise Agent Platform 集成,您只能通过使用 API 或 Google Cloud 控制台在项目级设置下限设置。
如需配置下限设置,请参阅配置下限设置。
如需配置与 Gemini Enterprise Agent Platform 集成的下限设置,请运行以下命令:
gcloud
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --add-integrated-services=VERTEX_AI
此命令默认启用 INSPECT_ONLY 强制执行模式。如需将模式更改为 INSPECT_AND_BLOCK,请运行以下命令:
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --vertex-ai-enforcement-type=INSPECT_AND_BLOCK
如需从集成服务中移除 Gemini Enterprise Agent Platform,请运行以下命令:
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --remove-integrated-services=VERTEX_AI
如需从楼层设置中移除所有已配置的集成服务,请运行以下命令:
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --clear-integrated-services
将 PROJECT_ID 替换为下限设置的项目 ID。
REST
curl -X PATCH \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{"filterConfig" : {"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}}, "integratedServices": ["AI_PLATFORM"], "aiPlatformFloorSetting":{"inspectOnly":true, "enableCloudLogging":true}, "enableFloorSettingEnforcement":true}' \ "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
将 PROJECT_ID 替换为包含下限设置的项目的 ID。
配置下限设置以启用 Gemini Enterprise Agent Platform 清理后,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.5-flash: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.5-flash", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
定义下限设置的强制执行类型
如需配置 Model Armor 处理检测结果的方式,请设置强制执行类型。以下示例展示了采用 INSPECT_AND_BLOCK 强制执行类型的下限设置配置。
gcloud
gcloud model-armor floorsettings update \ --full-uri=projects/modelarmor-api-test/locations/global/floorSetting \ --vertex-ai-enforcement-type=INSPECT_AND_BLOCK
REST
export FLOOR_SETTING='{ "filterConfig": { "raiSettings": { "raiFilters": [ { "filterType": "HATE_SPEECH", "confidenceLevel": "LOW_AND_ABOVE" }, { "filterType": "DANGEROUS", "confidenceLevel": "LOW_AND_ABOVE" }, { "filterType": "SEXUALLY_EXPLICIT", "confidenceLevel": "LOW_AND_ABOVE" }, { "filterType": "HARASSMENT", "confidenceLevel": "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 }, "enableFloorSettingEnforcement": true }' curl -X PATCH \ -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/global/floorSetting"
将 PROJECT_ID 替换为包含下限设置的项目的 ID。
配置 Model Armor 模板
Model Armor 还可以使用 Model Armor 模板与 Gemini Enterprise Agent Platform 集成。借助模板,您可以配置 Model Armor 过滤提示和回答的方式,并定义安全过滤器的配置。
您必须先创建模板,然后将这些模板与 Gemini 的 generateContent 方法搭配使用。如需详细了解模板,请参阅创建和管理 Model Armor 模板。
配置 Model Armor 模板后,在使用 generateContent 方法调用 Gemini API 时,请将模板 ID 作为参数传递。Gemini Enterprise Agent Platform 会将请求路由到 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.5-flash:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "PROMPT" } ] } ] , "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。PROMPT:文本提示。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.5-flash", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
配置优先级
将 Model Armor 与 Gemini Enterprise Agent Platform 搭配使用时,可以在多个层级定义安全配置。在这种情况下,Model Armor 和 Gemini Enterprise Agent Platform 会遵循特定的优先级顺序:
Model Armor 模板:在 API 请求中定义的配置中明确提供的任何配置都具有最高优先级。这些设置会替换相应特定请求的任何其他冲突配置。
Model Armor 下限设置:如果 API 请求中未提供替换配置,系统会应用 Model Armor 下限设置。
Gemini Enterprise Agent Platform 安全过滤条件:Gemini Enterprise Agent Platform 中内置的默认安全过滤条件具有最低优先级。仅在未定义特定 Model Armor 模板或下限设置时应用。
这种分层方法结合了组织范围内的最低标准(使用下限设置)和按请求控制(使用模板),同时仍以 Gemini Enterprise Agent Platform 的固有安全功能为基准。
注意事项
将 Model Armor 与 Gemini Enterprise Agent Platform 集成时,请考虑以下事项:
- 不支持对去标识化模板进行 Sensitive Data Protection 遮盖。
- 不支持清理包含文档的提示和回答。
在以下情况下,Gemini Enterprise Agent Platform 会跳过 Model Armor 清理步骤,继续处理请求:
- 如果某个区域有 Gemini Enterprise Agent Platform,则无法使用 Model Armor。
- Model Armor 暂时无法访问。
- Model Armor 中发生错误。
由于请求在未进行提示和回答清理的情况下继续进行,因此所有这些实例偶尔可能会呈现未经筛查的提示或回答。
虽然该集成旨在即使连接失败也能保持服务运行,但
INSPECT_AND_BLOCK模式仍会显示配置错误,例如权限或配额问题。