疑難排解

本頁面說明如何解決 Model Armor 的問題。

本節提供實用的疑難排解步驟,協助您解決使用 Model Armor 時遇到的問題。

所有對 Model Armor 的 API 呼叫都會傳回 404 找不到網頁錯誤

建立連至 Model Armor API 的 Private Service Connect。發生這項錯誤,通常是因為使用 Private Google Access,或在沒有 Private Service Connect 的情況下,存取 Model Armor 區域端點 (REP)。詳情請參閱「關於透過 Private Service Connect 端點存取區域端點」。

Sensitive Data Protection 篩選器發生錯誤或遭到略過

請確認下列事項:

  • Sensitive Data Protection 範本與所呼叫的 Model Armor 端點位於相同區域。
  • 提出 Model Armor 要求的服務代理,在含有 Sensitive Data Protection 範本的專案中,具備 dlp.User 和 dlp.Reader 角色。

發生這項錯誤的原因是 SanitizeUserPrompt 或 SanitizeModelResponse 要求中的用戶端錯誤,或是 Sensitive Data Protection 範本發生問題。

Model Armor 全球端點錯誤

請務必向適當的區域端點 (而非全域端點) 提出 API 要求。

Model Armor 僅支援在區域端點執行下列作業:

  • 對範本執行建立、讀取、更新、刪除和列出作業。
  • SanitizeUserPrompt 和 SanitizeModelResponse API 要求。

如果您向全域端點發出這些作業的 API 要求,會看到下列錯誤:

{
  "error": {
    "code": 403,
    "message": "Write access to project '<PROJECT_ID>' was denied",
    "status": "PERMISSION_DENIED"
  }
}

存取 Model Armor 區域端點時發生憑證錯誤

這項錯誤通常發生在下列情況:使用 Private Google Access 或 VPC Service Controls,從虛擬私有雲網路存取 Model Armor 區域端點,但憑證驗證失敗。

例如,您可能會看到類似下列的錯誤訊息:

curl: (60) SSL: no alternative certificate subject name matches target host name 'modelarmor.europe-west4.rep.googleapis.com'

如要解決這個問題,請建立連至 Model Armor API 的 Private Service Connect 端點。詳情請參閱「關於透過 Private Service Connect 端點存取區域端點」。

區域不支援要求的功能

您可能會看到類似下列的錯誤訊息:

Region '<var>REGION</var>' does not support the requested capabilities: '<var>CAPABILITIES</var>'

如果您嘗試在有功能限制的區域建立或更新範本,且要求啟用該區域不支援的功能,就會發生這項錯誤。

如何解決這個問題:

  1. 找出錯誤訊息中列出的不支援功能。
  2. 請查看各區域的功能可用性,確認指定區域不支援哪些功能。
  3. 從正在建立或更新的範本中,移除不支援的功能。

或者,如果資料落地規定允許,請使用支援這些功能的其他 Model Armor 區域。

必須符合範本資料落地法規

您可能會看到類似下列的 400 (FAILED_PRECONDITION) 錯誤訊息:

Template data residency compliance is required. The 'Enforce data residency' field must not be set to false.

如果強制執行「Require Model Armor Template Data Residency Compliance」(需要 Model Armor 範本資料落地法規遵循) (constraints/modelarmor.managed.requireTemplateDataResidencyCompliance) 代管組織政策服務限制,且您在建立或更新 Model Armor 範本時停用了資料落地法規遵循,就會發生這項錯誤。如果將 data_residency_compliant 設為 false,或清除「Enforce data residency」(強制執行資料落地) 選項,系統就會停用資料落地法規遵循功能。由於這項限制預設為強制執行,因此在 data_residency_compliant 已設為 false 的現有範本上編輯任何設定 (例如篩選器),也會觸發這項錯誤。除非您更新範本,否則現有範本和清理提示詞與回覆的要求不會受到影響。

如要解決這個問題,請按照下列其中一種做法進行:

  • 將 data_residency_compliant 設為 true,或選取「Enforce data residency」(強制執行資料落地) 選項,即可在範本上啟用資料落地法規遵循功能。
  • 如需為範本停用資料落地法規遵循功能,請按照「停用資料落地的組織政策限制」一節中的步驟操作,讓組織政策管理員停用限制。

大型提示或酬載會略過政策控制項或篩選器

篩選大型提示或回覆時 (例如檢索增強生成 (RAG) 酬載或多步驟代理對話記錄),個別篩選器可能不會執行,或者清理結果可能會傳回 EXECUTION_SKIPPED,並在 messageItems 欄位中顯示下列其中一則警告訊息:

Detection skipped as token limit exceeded.
Input size exceeded the limit of 4194304 bytes.

如果一元清理要求或緩衝串流要求超過篩選器的權杖系統限制 (提示詞注入和越獄偵測、負責任的 AI 技術和 CSAM 為 65,536 個權杖;Sensitive Data Protection 為 130,000 個權杖),或超過 4 MB 的輸入大小限制,就會發生這個問題。如果輸入內容超過篩選器的權杖限制,且未偵測到相符項目,篩選器會傳回 EXECUTION_SKIPPED 和 NO_MATCH_FOUND,允許要求在內嵌整合中繼續執行。

如要確認篩選器是否因權杖或輸入大小限制而略過,請在 Cloud Logging 中查詢 SanitizeOperation 記錄:

jsonPayload.@type="type.googleapis.com/google.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry"
"EXECUTION_SKIPPED"

如何解決這個問題:

  1. 如果是串流工作負載或長時間執行的代理互動,請使用即時串流清理 (StreamSanitizeUserPrompt 和 StreamSanitizeModelResponse)。如果是使用 Agent Gateway 的 Agent Development Kit 代理,請使用 streamQuery,這類代理會分塊處理輸入內容,並支援不限數量的權杖。
  2. 對於一元要求,請先將大型 RAG 酬載分塊,或修剪多步驟代理對話記錄,再傳送至 Model Armor,確保每項要求都符合權杖系統限制和 4 MB 的輸入大小限制。