與 Gemini Enterprise Agent Platform 整合

您可以透過底限設定範本,將 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 SDKFirebase 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-central1us-east4us-west1europe-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 會依特定優先順序運作:

  1. Model Armor 範本:在 API 要求中定義的設定內明確提供的任何設定,都會具有最高優先順序。這些設定會覆寫該特定要求的任何其他衝突設定。

  2. Model Armor 底限設定:如果 API 要求中未提供覆寫設定,系統會套用 Model Armor 底限設定。

  3. 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 模式仍會顯示設定錯誤,例如權限或配額問題。