您可以透過底限設定或範本,將 Model Armor 直接整合至 Gemini Enterprise 代理平台。Model Armor 會與 Gemini Enterprise Agent Platform 整合,篩選傳送給 Gemini 模型的要求,以及從 Gemini 模型收到的回覆。系統會檢查或封鎖違反底價設定的流量。
Model Armor 會在 Vertex AI 的 Gemini API 中,為 generateContent 方法提供提示和回覆保護機制。您必須啟用 Cloud Logging,才能查看提示和回覆的清除結果。
除了保護對 Gemini Enterprise Agent Platform 服務的直接 REST 呼叫外,您也可以使用 Model Armor 保護其他介面,例如 Google Gen AI SDK 或 Firebase AI Logic SDK,這些介面可存取 Vertex AI 中的 Gemini API。
事前準備
將 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" : {}, "integratedServices": "AI_PLATFORM", "aiPlatformFloorSetting":{"inspect_only":true, "enableCloudLogging":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.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 處理偵測結果的方式,請設定強制執行類型。以下範例顯示採用 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='{ "filter_config": { "rai_settings": { "rai_filters": { "filter_type": "HATE_SPEECH", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "DANGEROUS", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "SEXUALLY_EXPLICIT", "confidence_level": "LOW_AND_ABOVE" }, "rai_filters": { "filter_type": "HARASSMENT", "confidence_level": "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 }, "enable_floor_setting_enforcement": "true" }' curl -X POST \ -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/LOCATION/floorSetting"
更改下列內容:
PROJECT_ID:樓層設定的專案 ID。LOCATION:底限設定的位置。
設定 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.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" }
設定優先順序
搭配 Gemini Enterprise Agent Platform 使用 Model Armor 時,您可以在多個層級定義安全設定。在這種情況下,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模式仍會顯示設定錯誤,例如權限或配額問題。