您可以透過底層設定或範本,將 Model Armor 直接整合至 Vertex AI。Model Armor 會與 Vertex AI 整合,篩選傳送至 Gemini 模型的請求,以及模型傳回的回覆。系統會檢查或封鎖違反底價設定的流量。
Model Armor 會在 Vertex AI 的 Gemini API 中,為 generateContent 方法提供提示和回覆保護機制。您必須啟用 Cloud Logging,才能查看提示和回覆的清除結果。
事前準備
將 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 範本設定最低偵測門檻。這些設定會驗證所有新範本和修改過的範本是否符合底限設定需求。
如要啟用 Model Armor 和 Vertex AI 整合功能,只能使用 API 或 Google Cloud 控制台在專案層級設定底價。
如要設定底限,請參閱「指定底限設定」。
如要透過 Vertex AI 整合功能設定樓層,請執行下列指令:
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
如要從整合式服務中移除 Vertex AI,請執行下列指令:
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。
設定底限後,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 處理偵測結果的方式,請設定強制執行類型。以下範例顯示採用 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 與 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" }
設定優先順序
在 Vertex AI 中使用 Model Armor 時,您可以在多個層級定義安全設定。在這種情況下,Model Armor 和 Vertex AI 會遵循特定優先順序:
Model Armor 範本:在 API 要求中定義的設定內明確提供的任何設定,都會具有最高優先順序。這些設定會覆寫該特定要求的任何其他衝突設定。
Model Armor 底限設定:如果 API 要求中未提供覆寫設定,系統會套用 Model Armor 底限設定。
Vertex AI 安全篩選器:Vertex AI 內建的預設安全篩選器優先順序最低。只有在未定義特定 Model Armor 範本或底限設定時,系統才會套用這些設定。
這種階層式做法結合了廣泛的全機構最低標準 (使用下限設定) 和每個要求的控制項 (使用範本),同時仍以 Vertex AI 的固有安全功能做為基準。
注意事項
將 Model Armor 與 Vertex AI 整合時,請注意下列事項:
- 系統不支援對去識別範本進行 Sensitive Data Protection 遮蓋處理。
- 系統不支援清除含有文件的提示和回覆。
在下列情況下,Vertex AI 會略過 Model Armor 清理步驟,並繼續處理要求:
- 如果區域有 Vertex AI,則無法使用 Model Armor。
- 暫時無法連線至 Model Armor。
- Model Armor 發生錯誤。
在這些情況下,由於系統會繼續處理要求,但不會對提示和回覆進行清理,因此有時可能會顯示未經篩選的提示或回覆。