您可以透過底層設定或範本,直接將 Model Armor 整合至 Vertex AI。將 Model Armor 整合至 Vertex AI 後,您就能篩選傳送至 Gemini 模型的要求和模型回覆,並檢查或封鎖違反底限設定門檻的要求或回覆。Model Armor 會在 Vertex AI 的 Gemini API 中,為 generateContent
方法提供提示和回覆保護機制。您必須啟用 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
:專案 ID。 Google CloudLOCATION
: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" }