您可以使用 Model Armor 範本,為 AI 應用程式設定提示詞和回覆的篩選機制。範本提供自訂的篩選條件和門檻,適用於多種安全類別。本文說明如何建立及管理 Model Armor 範本。詳情請參閱 Model Armor 範本。
事前準備
開始之前,請先完成下列工作。
取得必要權限
如要取得管理 Model Armor 範本所需的權限,請要求管理員授予您 Model Armor 範本的「Model Armor 管理員」 (roles/modelarmor.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
啟用 API
您必須先啟用 Model Armor API,才能使用 Model Armor。
控制台
gcloud
開始前,請使用 Google Cloud CLI 搭配 Model Armor API 執行下列步驟:
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
使用 gcloud CLI 設定 API 端點覆寫
如果您使用 gcloud CLI 啟用 Model Armor API,才需要執行這個步驟。您必須手動設定 API 端點覆寫,確保 gcloud CLI 正確將要求轉送至 Model Armor 服務。
執行下列指令,為 Model Armor 服務設定 API 端點。
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
將 LOCATION 替換為要使用 Model Armor 的區域。
建立 Model Armor 範本
Model Armor 範本會定義特定篩選條件和門檻,供 Model Armor 用來篩選提示詞和回覆,找出安全風險。如要建立 Model Armor 範本,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Model Armor」頁面。
確認您正在查看已啟用 Model Armor 的專案。
在「Model Armor」頁面,按一下「建立範本」。 系統會顯示「建立範本」頁面。
指定「範本 ID」。範本 ID 可包含英文字母、數字、底線或連字號,不得超過 63 個半形字元,也不得包含空格或以連字號開頭。
在「Location type」(位置類型) 專區中,選取要執行 Model Armor 作業的區域或多區域。設定後即無法變更。
選用步驟:在「資料落地法規遵循」部分,選擇是否要啟用資料落地強制執行功能。根據預設,系統會停用未在所選位置本機代管的任何 Model Armor 功能,避免資料跨越其他管轄區。本節列出已停用的功能。
如要啟用受資料落地規定限制的功能,請停用「強制執行資料落地規定」選項。這項操作可讓您的資料跨管轄區傳輸。
選用:在「Labels」(標籤) 部分中,新增要用來將相關範本歸為一組的鍵/值組合。
在「篩選器版本」部分,選取篩選器版本號碼或篩選器版本別名。
選取模式,指定要螢幕擷取文字、圖片或兩者。
在「偵測」部分,設定偵測設定。
選用:如果選取 Sensitive Data Protection 偵測,請設定 Sensitive Data Protection 設定。
在「負責任的 AI 技術」部分,為每個內容篩選器設定信心水準。
選用:展開「Additional configurations (optional)」(其他設定 (選用)) 部分,然後設定下列任一設定:
點選「建立」。
gcloud
執行下列指令:
gcloud model-armor templates create TEMPLATE_ID --project=PROJECT_ID --location=LOCATION \
--rai-settings-filters='[{ "filterType": "HATE_SPEECH", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "HARASSMENT", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "SEXUALLY_EXPLICIT", "confidenceLevel": "MEDIUM_AND_ABOVE" }]' \
--basic-config-filter-enforcement=enabled \
--pi-and-jailbreak-filter-settings-enforcement=enabled \
--pi-and-jailbreak-filter-settings-confidence-level=HIGH \
--malicious-uri-filter-settings-enforcement=enabled \
--template-metadata-custom-llm-response-safety-error-code=798 \
--template-metadata-custom-llm-response-safety-error-message="test template llm response evaluation failed" \
--template-metadata-custom-prompt-safety-error-code=799 \
--template-metadata-custom-prompt-safety-error-message="test template prompt evaluation failed" \
--template-metadata-ignore-partial-invocation-failures \
--template-metadata-log-operations \
--template-metadata-log-sanitize-operations
更改下列內容:
LOCATION:範本的位置。TEMPLATE_ID:範本 ID。PROJECT_ID:範本所屬的專案 ID。
REST
使用下列指令建立新的 Model Armor 範本。
curl -X POST \
-d "FILTER_CONFIG" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
更改下列內容:
FILTER_CONFIG:範本的篩選器設定,格式為 JSON。PROJECT_ID:範本所屬的專案 ID。TEMPLATE_ID:要建立的範本 ID。LOCATION:範本的位置。
以下範例顯示 Model Armor 篩選器設定 (FilterConfig),您可以在其中定義要偵測的內容。在這個範例中,負責任的 AI 篩選器已針對仇恨言論、騷擾、危險內容和煽情露骨內容設定不同的信心水準。系統會啟用提示詞注入和越獄偵測篩選器,並將信心水準設為 HIGH,這表示只有高可能性內容會遭到標記。已啟用惡意 URI 篩選器。
export FILTER_CONFIG='{
"filterConfig": {
"raiSettings": {
"raiFilters": [{
"filterType": "HATE_SPEECH",
"confidenceLevel": "MEDIUM_AND_ABOVE"
}, {
"filterType": "HARASSMENT",
"confidenceLevel": "HIGH"
}, {
"filterType": "DANGEROUS",
"confidenceLevel": "MEDIUM_AND_ABOVE"
},{
"filterType": "SEXUALLY_EXPLICIT",
"confidenceLevel": "MEDIUM_AND_ABOVE"
}]
},
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED",
"confidenceLevel": "HIGH"
},
"maliciousUriFilterSettings": {
"filterEnforcement": "ENABLED"
}
}
}'
curl -X POST \
-d "$FILTER_CONFIG" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
如要定義 Model Armor 處理作業、錯誤和記錄的方式,請在指令中設定範本中繼資料 (TemplateMetadata)。範本中繼資料包括語言偵測、模態和資料落地法規遵循的設定。
以下範例會建立 Model Armor 範本設定,並啟用多語言偵測和模態 (圖片和文字)。
export TEMPLATE_CONFIG='{
"filterConfig": {
"raiSettings": {
"raiFilters": [{
"filterType": "HATE_SPEECH",
"confidenceLevel": "MEDIUM_AND_ABOVE"
}, {
"filterType": "HARASSMENT",
"confidenceLevel": "HIGH"
}, {
"filterType": "DANGEROUS",
"confidenceLevel": "MEDIUM_AND_ABOVE"
},{
"filterType": "SEXUALLY_EXPLICIT",
"confidenceLevel": "MEDIUM_AND_ABOVE"
}]
},
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED",
"confidenceLevel": "HIGH"
},
"maliciousUriFilterSettings": {
"filterEnforcement": "ENABLED"
}
},
"templateMetadata": {
"multiLanguageDetection": {
"enableMultiLanguageDetection": true
},
"modalities": ["MODALITY_IMAGE", "MODALITY_TEXT"]
}
}'
curl -X POST \
-d "$TEMPLATE_CONFIG" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
C#
如要執行這段程式碼,請先設定 C# 開發環境,並安裝 Model Armor C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Model Armor Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Model Armor Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境, 然後安裝 Model Armor Node.js SDK。
PHP
如要執行這段程式碼,請先設定 PHP 開發環境,然後安裝 Model Armor PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Model Armor Python SDK。
設定資料落地法規遵循
根據預設,您建立的任何範本都會嚴格執行資料落地法規遵循。也就是說,如果 Model Armor 功能並非託管在「涵蓋範本區域的管轄範圍」內,就會遭到停用。資料落地法規遵循強制執行功能可防止資料離開管轄範圍。
如果範本優先考量全面安全篩選,而非嚴格的資料落地控管,您可以停用使用中和傳輸中資料的資料落地控管機制。如要停用這項功能,請透過Google Cloud 控制台停用「強制執行資料落地」選項,或透過 Model Armor API 將 data_residency_compliant 設為 false。無論此選項的狀態為何,靜態資料都會繼續遵守資料落地規定。
在範本中停用資料落地法規遵循設定後,系統就會允許跨管轄區傳輸資料。也就是說,如果範本所在管轄區沒有特定功能,Model Armor 可能會將要求轉送至其他管轄區。
停用資料落地法規遵循後,除了圖像模態外,所有 Model Armor 功能都會啟用。圖像模態仍僅限於 us 和 eu 多區域。
選取篩選器版本
Model Armor 篩選器版本可兼顧實際工作環境工作負載的穩定性,以及存取最新威脅偵測模型的需求。篩選器版本是在範本層級進行設定,篩選器版本會套用至範本中的所有篩選器,但不使用篩選器版本的篩選器除外。詳情請參閱「為範本設定篩選器版本」。
選取模式
使用模態指定要掃描的項目:
- 全部:掃描文字和圖片。
- 特定模式:
- 文字:掃描文字字串和內嵌在支援檔案格式中的文字。
- 圖片:掃描圖片。
設定偵測作業
偵測是指 Model Armor 對提示詞和回覆執行的特定檢查。Model Armor 提供彈性的偵測設定系統,可讓您為 AI 應用程式量身打造保護等級。您可以在建立範本時設定偵測功能。Model Armor 會對提示詞和回覆執行下列偵測檢查:
惡意網址偵測:找出用於危害使用者或系統的網址。這些網址可能會通往網路釣魚網站、誘導下載惡意軟體或進行其他網路攻擊。詳情請參閱「惡意網址偵測」。
提示詞注入和越獄偵測:偵測提示中的惡意內容和越獄嘗試。建議您將可信度設為「高」,盡量減少誤判情形,並確保偵測行為一致。即使將信賴水準設為「高」,減少誤判率,但仍可能在極少數情況下發生誤判。詳情請參閱「提示詞注入和越獄偵測」。
Sensitive Data Protection:偵測機密資料,協助防止機密資料因提示詞注入等攻擊而意外曝光。詳情請參閱「Sensitive Data Protection」。
設定 Sensitive Data Protection
Model Armor 會運用 Sensitive Data Protection 識別並防止 LLM 互動中的機密資訊曝光。詳情請參閱「Sensitive Data Protection」。
Model Armor 提供兩種模式,可設定 Sensitive Data Protection:
基本:使用預先定義的 infoType 偵測機密資料,方法較為簡單。如要進一步瞭解預先定義的 infoType,請參閱「基本 Sensitive Data Protection 設定」。
進階:可設定的選項,使用 Sensitive Data Protection 服務中定義的檢查範本,做為機密/私密資料 infoType 的單一來源。
如果選取「進階」模式,您必須指定下列參數:
檢查範本: 用於儲存檢查掃描工作設定資訊的範本,包括要使用的預先定義或自訂偵測工具。 請按照下列格式輸入範本名稱:
projects/projectId/locations/locationId/inspectTemplates/templateName選用:去識別化範本: 用於儲存去識別化工作設定資訊的範本,包括 infoType 和結構化資料集轉換。請輸入去識別化範本的 ID,格式如下:
projects/projectId/locations/locationId/deidentifyTemplates/templateName
確認 Sensitive Data Protection 中有檢查範本和去識別化範本。如果範本位於其他專案,則必須將該專案的 DLP 使用者角色 (roles/dlp.user) 和 DLP 讀取者角色 (roles/dlp.reader) 授予 Model Armor 服務代理程式。
設定信賴區間
信心水準代表偵測到的結果符合某個內容篩選器類型的可能性。您可以為每個內容篩選器設定信心水準。可能的值如下:
- 無:未偵測到任何內容。
- 低與以上:偵測到的內容信心水準為低、中或高。
- 中等以上:偵測到信心水準中等或高的內容。
- 高:以高信心水準偵測到內容。
如要強制執行更嚴格的設定,請將信心水準設為「低與以上」,這樣就能偵測到多數屬於該內容篩選器類型的內容。
如要在範本上啟用全面記錄功能,請參閱「Model Armor 稽核與平台記錄」。
定義範本的強制執行類型
如要設定 Model Armor 處理偵測結果的方式,請設定強制執行類型。
在範本設定的 template_metadata 欄位中,將 enforcement_type 設為 INSPECT_ONLY 或 INSPECT_AND_BLOCK。
export TEMPLATE_CONFIG='{
"filter_config": {
"rai_settings": {
"rai_filters": [{
"filter_type": "HATE_SPEECH",
"confidence_level": "MEDIUM_AND_ABOVE"
}, {
"filter_type": "HARASSMENT",
"confidence_level": "MEDIUM_AND_ABOVE"
}, {
"filter_type": "DANGEROUS",
"confidence_level": "MEDIUM_AND_ABOVE"
},{
"filter_type": "SEXUALLY_EXPLICIT",
"confidence_level": "MEDIUM_AND_ABOVE"
}]
},
"pi_and_jailbreak_filter_settings": {
"filter_enforcement": "ENABLED",
"confidence_level": "HIGH"
},
"malicious_uri_filter_settings": {
"filter_enforcement": "ENABLED"
}
},
"template_metadata": {
"enforcement_type": "INSPECT_ONLY",
"multi_language_detection": {
"enable_multi_language_detection": true
}
}
}'
curl -X POST \
-d "$TEMPLATE_CONFIG" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
更改下列內容:
PROJECT_ID:範本所屬的專案 ID。TEMPLATE_ID:要建立的範本 ID。LOCATION:範本的位置。
查看 Model Armor 範本
查看現有範本,瞭解可用的設定,並排解及解決篩選提示和回覆的問題。
控制台
前往 Google Cloud 控制台的「Model Armor」頁面。
確認您正在查看已啟用 Model Armor 的專案。系統會顯示「Model Armor」頁面,列出為專案建立的範本。
按一下清單中的任一範本,即可查看詳細資料。
gcloud
執行下列指令:
gcloud model-armor templates describe TEMPLATE_ID --project=PROJECT_ID --location=LOCATION
更改下列內容:
LOCATION:範本的位置。TEMPLATE_ID:範本 ID。PROJECT_ID:範本所屬的專案 ID。
REST
執行下列指令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"
更改下列內容:
PROJECT_ID:範本所屬的專案 ID。TEMPLATE_ID:要查看的範本 ID。LOCATION:範本的位置。
C#
如要執行這段程式碼,請先設定 C# 開發環境,並安裝 Model Armor C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Model Armor Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Model Armor Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境, 然後安裝 Model Armor Node.js SDK。
PHP
如要執行這段程式碼,請先設定 PHP 開發環境,然後安裝 Model Armor PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Model Armor Python SDK。
更新 Model Armor 範本
定期更新範本,確保 AI 應用程式維持穩健有效的資安態勢。
控制台
前往 Google Cloud 控制台的「Model Armor」頁面。
確認您正在查看已啟用 Model Armor 的專案。系統會顯示「Model Armor」頁面,列出為貴機構建立的範本。
在清單中按一下要更新的範本。系統隨即會顯示「範本詳細資料」頁面。
按一下 [編輯]。
更新必要參數,然後按一下「儲存」。
gcloud
執行下列指令:
gcloud model-armor templates update TEMPLATE_ID --project=PROJECT_ID --location=LOCATION
更改下列內容:
LOCATION:範本的位置。TEMPLATE_ID:範本 ID。PROJECT_ID:範本所屬的專案 ID。
REST
執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "$FILTER_CONFIG" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?updateMask=UPDATE_MASK"
更改下列內容:
PROJECT_ID:範本所屬的專案 ID。LOCATION:範本的位置。TEMPLATE_ID:範本 ID。UPDATE_MASK:要更新的欄位,例如filterConfig和filterConfig.piAndJailbreakFilterSettings。如果將這個欄位留空,系統會更新整個篩選器設定。
其他欄位則無法變更。嘗試更新其他欄位 (例如嘗試更新範本名稱) 會導致錯誤。
C#
如要執行這段程式碼,請先設定 C# 開發環境,並安裝 Model Armor C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Model Armor Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Model Armor Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境, 然後安裝 Model Armor Node.js SDK。
PHP
如要執行這段程式碼,請先設定 PHP 開發環境,然後安裝 Model Armor PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Model Armor Python SDK。
刪除 Model Armor 範本
如果不再使用範本、有新範本取代舊範本,或是安全政策有所變更,請刪除範本。
控制台
前往 Google Cloud 控制台的「Model Armor」頁面。
確認您正在查看已啟用 Model Armor 的專案。系統會顯示「Model Armor」頁面,列出為貴機構建立的範本。
在清單中按一下要刪除的範本。系統隨即會顯示「範本詳細資料」頁面。
按一下「Delete」(刪除)。系統會顯示確認對話方塊。
輸入範本名稱來確認刪除,然後按一下「刪除」。
gcloud
執行下列指令:
gcloud model-armor templates delete TEMPLATE_ID --project=PROJECT_ID --location=LOCATION
更改下列內容:
LOCATION:範本的位置。TEMPLATE_ID:範本 ID。PROJECT_ID:範本所屬的專案 ID。
REST
執行下列指令:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"
更改下列內容:
PROJECT_ID:範本所屬的專案 ID。LOCATION:範本的位置。TEMPLATE_ID:範本 ID。
C#
如要執行這段程式碼,請先設定 C# 開發環境,並安裝 Model Armor C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Model Armor Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Model Armor Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境, 然後安裝 Model Armor Node.js SDK。
PHP
如要執行這段程式碼,請先設定 PHP 開發環境,然後安裝 Model Armor PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Model Armor Python SDK。
範本中繼資料
Model Armor 範本中繼資料可協助您設定 Model Armor 的行為,包括安全和安全性檢查處理、錯誤處理和記錄行為。
Model Armor 的範本中繼資料包含下列欄位:
| 中繼資料 | 類型 | 預設值 | 說明 |
|---|---|---|---|
| enforcement_type | 列舉 | INSPECT_AND_BLOCK |
定義強制執行類型。請使用下列其中一個值:
|
| log_template_operations | 布林值 | 否 | 啟用範本作業記錄。 |
| log_sanitize_operations | 布林值 | 否 | 啟用記錄清除作業。 |
| multiLanguageDetection | 布林值 | 否 | 啟用多語言偵測功能。 |
| 模態 (預先發布版) | 列舉 | 空白 | 決定要掃描文字、圖片或兩者。如果將這個欄位留空,系統只會掃描文字。 請使用下列其中一個值:
|
| data_residency_compliant | 布林值 | 是 |
指出範本是否須遵守嚴格的資料落地規定 (在管轄區內處理)。
如要進一步瞭解這個欄位,請參閱本文的「設定資料落地法規遵循」一節。 如要進一步瞭解範本的資料落地設定,請參閱「範本的資料落地強制執行」。 |