本頁詳細說明如何清除提示和回覆。Model Armor 提供一系列篩選器,可保護您的 AI 應用程式。Model Armor 會根據設定的篩選信賴水準檢查提示和回覆。
事前準備
按照「建立範本」一文中的操作說明建立範本。
取得必要權限
如要取得清除提示和回應所需的權限,請要求管理員在 Model Armor 上授予下列 IAM 角色:
-
Model Armor 使用者 (
roles/modelarmor.user
) -
Model Armor 檢視者 (
roles/modelarmor.viewer
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
啟用 API
您必須先啟用 Model Armor API,才能使用 Model Armor。
主控台
Enable the Model Armor API.
選取要啟用 Model Armor 的專案。
gcloud
開始前,請使用 Google Cloud CLI 搭配 Model Armor API 執行下列步驟:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
執行下列指令,為 Model Armor 服務設定 API 端點。
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
將
LOCATION
改為要使用 Model Armor 的區域。SDP_PROJECT_ID
:進階 Sensitive Data Protection 範本所屬專案的 ID。PROJECT_NUMBER
:範本所屬專案的編號。PROJECT_ID
:範本的專案 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。PROJECT_ID
:範本的專案 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。PROJECT_ID
:範本所屬專案的 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。FILE_TYPE
:輸入檔案的格式。CREDIT_CARD_NUMBER
:信用卡號碼是長度介於 12 到 19 位數的一組號碼,可用於全球付款交易。FINANCIAL_ACCOUNT_NUMBER
:指特定金融帳戶的號碼,例如銀行帳號或退休金帳號。GCP_CREDENTIALS
: Google Cloud 服務帳戶憑證。憑證可以用來驗證 {api_client_lib_name} 和服務帳戶。GCP_API_KEY
: Google Cloud API 金鑰。呼叫不需要存取私人使用者資料的 Google Cloud API 時使用的加密字串。PASSWORD
:設定、程式碼和其他文字中的純文字密碼。US_SOCIAL_SECURITY_NUMBER
:美國社會安全號碼 (SSN) 是一組 9 位數的號碼,核發對象是美國公民、永久居民和臨時居民。這項偵測工具不會比對出任何均為 0 的數字群組 (即 000-##-####、###-00-#### 或 ###-##-0000)、第一個數字群組為 666 的號碼,或是第一碼為 9 的號碼。US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
:美國個人納稅識別號碼 (ITIN) 是由美國國稅局 (IRS) 核發的一種稅號 (TIN)。ITIN 這類稅務處理號碼僅適用於無法取得社會安全號碼 (SSN) 的特定非居民和外籍居民、其配偶和眷屬。TEMPLATE_ID
:範本的 ID。LOCATION
:範本的位置。PROJECT_ID
:範本所屬專案的 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。PROJECT_ID
:範本所屬專案的 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。TEMPLATE_ID
:範本的 ID。LOCATION
:範本的位置。PROJECT_ID
:範本所屬專案的 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。PROJECT_ID
:範本所屬專案的 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。PROJECT_ID
:範本所屬專案的 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。這個範例會傳回下列回應:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "rai": { "raiFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "raiFilterTypeResults": { "dangerous": { "confidenceLevel": "MEDIUM_AND_ABOVE", "matchState": "MATCH_FOUND" }, "sexually_explicit": { "matchState": "NO_MATCH_FOUND" }, "hate_speech": { "matchState": "NO_MATCH_FOUND" }, "harassment": { "matchState": "NO_MATCH_FOUND" } } } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "malicious_uris": { "maliciousUriFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, } } }
PROJECT_ID
:範本所屬專案的 ID。LOCATION
:範本的位置。TEMPLATE_ID
:範本的 ID。- 進一步瞭解 Model Armor。
- 瞭解 Model Armor 底限設定。
- 瞭解 Model Armor 範本。
- 排解 Model Armor 問題。
執行下列指令,啟用 Model Armor。
gcloud services enable modelarmor.googleapis.com --project=PROJECT_ID
將 PROJECT_ID
替換為專案 ID。
在包含 Sensitive Data Protection 範本的專案中,將DLP 使用者角色 (roles/dlp.user
) 和 DLP 讀者角色 (roles/dlp.reader
) 授予在「建立範本」的進階 Sensitive Data Protection 步驟中建立的服務代理人。如果 Sensitive Data Protection 範本與 Model Armor 範本位於同一個專案,請略過這個步驟。
gcloud projects add-iam-policy-binding SDP_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role=roles/dlp.user gcloud projects add-iam-policy-binding SDP_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role=roles/dlp.reader
更改下列內容:
清除提示
清除提示,防範惡意輸入內容,確保傳送至 LLM 的提示安全無虞且適當。
文字提示
Model Armor 會分析文字並套用不同篩選器,找出並排除潛在威脅,藉此清除文字提示。
REST
使用下列指令,在 Model Armor 中清除文字提示。
curl -X POST \
-d '{"userPromptData":{"text":"[UNSAFE TEXT]"}}' \
-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:sanitizeUserPrompt"
更改下列內容:
這會產生下列回應。請注意,MATCH_FOUND
屬於「危險」類別。
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "malicious_uris": { "maliciousUriFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "rai": { "raiFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "raiFilterTypeResults": { "sexually_explicit": { "matchState": "NO_MATCH_FOUND" }, "hate_speech": { "matchState": "NO_MATCH_FOUND" }, "harassment": { "matchState": "NO_MATCH_FOUND" }, "dangerous": { "matchState": "MATCH_FOUND" } } } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } } } } } }
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。
這會產生下列回應。
sanitization_result { filter_match_state: MATCH_FOUND filter_results { key: "rai" value { rai_filter_result { execution_state: EXECUTION_SUCCESS match_state: MATCH_FOUND rai_filter_type_results { key: "dangerous" value { confidence_level: HIGH match_state: MATCH_FOUND } } } } } filter_results { key: "pi_and_jailbreak" value { pi_and_jailbreak_filter_result { execution_state: EXECUTION_SUCCESS match_state: MATCH_FOUND confidence_level: HIGH } } } filter_results { key: "malicious_uris" value { malicious_uri_filter_result { execution_state: EXECUTION_SUCCESS match_state: NO_MATCH_FOUND } } } filter_results { key: "csam" value { csam_filter_filter_result { execution_state: EXECUTION_SUCCESS match_state: NO_MATCH_FOUND } } } invocation_result: SUCCESS }
啟用多語言偵測功能,清除文字提示
如要為個別要求啟用多語言偵測功能,請將每個要求的 enableMultiLanguageDetection
旗標設為 true
。如要取得更準確的結果,可以指定來源語言。如果未指定來源語言,系統會自動偵測,提供多語言支援。
使用下列指令,在 Model Armor 中清除文字提示,並在要求層級啟用多語言偵測功能。
curl -X POST \ -d '{"userPromptData":{"text":"[UNSAFE TEXT]"}, "multiLanguageDetectionMetadata": { "enableMultiLanguageDetection": true , "sourceLanguage": "jp"}}' \ -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:sanitizeUserPrompt"
更改下列內容:
以檔案為基礎的提示
如要清除儲存在檔案中的提示,請以 base64 格式提供檔案內容。Model Armor 不會自動偵測檔案類型,您必須明確設定 byteDataType
欄位,指出檔案格式。如果缺少或未指定這個欄位,要求就會失敗。byteDataType
可能的值為 PLAINTEXT_UTF8
、PDF
、WORD_DOCUMENT
、EXCEL_DOCUMENT
、POWERPOINT_DOCUMENT
、TXT
和 CSV
。
REST
curl -X POST \ -d "$(jq -n \ --arg data "$(base64 -w 0 -i sample.pdf)" \ '{userPromptData: {byteItem: {byteDataType: "FILE_TYPE", byteData: $data}}}')" \ -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:sanitizeUserPrompt"
更改下列內容:
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。
基本 Sensitive Data Protection 設定
Model Armor 會整合敏感資料防護功能,協助防止私人資訊意外曝光。建立範本並啟用基本機密資料保護設定。基本私密/機密資料保護功能 可協助您篩選一組固定的私密/機密資料保護 infoType。
系統會在提示中掃描下列 Sensitive Data Protection infoType,適用於所有區域:
在美國地區的提示中,系統會掃描下列額外的 Sensitive Data Protection infoType:
以下是 Sensitive Data Protection 的基本設定範例:
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --project=PROJECT_ID \ --basic-config-filter-enforcement=enabled
更改下列內容:
REST
export FILTER_CONFIG_SDP_BASIC='{ "filterConfig": { "sdpSettings": { "basicConfig": { "filterEnforcement": "ENABLED" } } } }' curl -X PATCH \ -d "$FILTER_CONFIG_SDP_BASIC" \ -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?updateMask=filterConfig.sdpSettings.basicConfig.filterEnforcement"
更改下列內容:
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。
使用建立的範本篩選提示。範例如下:
curl -X POST \ -d '{"userPromptData":{"text":"can you remember my ITIN : ###-##-####"}}' \ -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:sanitizeUserPrompt"
更改下列內容:
這個範例會傳回下列回應:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": [ { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "findings": [ { "infoType": "US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER", "likelihood": "LIKELY", "location": { "byteRange": { "start": "26", "end": "37" }, "codepointRange": { "start": "26", "end": "37" } } } ] } } } ] } }
進階 Sensitive Data Protection 設定
Model Armor 會使用進階的 Sensitive Data Protection 設定,篩選 LLM 提示詞和回覆。這樣一來,您就能使用 Sensitive Data Protection 功能,而不僅限於基本 Sensitive Data Protection 設定提供的 infoType。
如要在 Model Armor 中使用 Sensitive Data Protection 進階篩選器,Sensitive Data Protection 範本必須與 Model Armor 範本位於同一個雲端位置。
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --advanced-config-inspect-template="path/to/template" \
更改下列內容:
REST
export FILTER_CONFIG_SDP_ADV='{ "filterConfig": { "sdpSettings": { "advancedConfig": { "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address", "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/inspect-ip-address" } } } }' curl -X POST \ -d "$FILTER_CONFIG_SDP_ADV" \ -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?updateMask=filterConfig.sdpSettings.advancedConfig"
更改下列內容:
這個範例會傳回下列回應:
{ "name": "projects/PROJECT_ID/locations/LOCATION/templates/all-filters-test", "createTime": "2024-12-16T17:08:19.626693819Z", "updateTime": "2024-12-16T17:08:19.626693819Z", "filterConfig": { "sdpSettings": { "advancedConfig": { "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address", "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/inspect-ip-address" } } } }
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。
使用建立的範本篩選提示。範例如下:
curl -X POST \ -d '{"userPromptData":{"text":"is there anything malicious running on 1.1.1.1?"}}' \ -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:sanitizeUserPrompt"
更改下列內容:
這個範例會傳回下列回應:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": [ { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, { "sdpFilterResult": { "deidentifyResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "data": { "text": "is there anything malicious running on [IP_ADDRESS]?" }, "transformedBytes": "7", "infoTypes": ["IP_ADDRESS"] } } } ] } }
清理模型回覆
LLM 有時會生成有害的回覆。為降低在應用程式中使用 LLM 的相關風險,請務必清除 LLM 回覆內容中的有害資訊。
以下是使用 Model Armor 清理模型回覆的指令範例。
REST
curl -X POST \
-d '{"text":"IP address of the current network is ##.##.##.##"}' \
-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:sanitizeModelResponse"
更改下列內容:
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。
啟用多語言偵測功能,清理模型回覆
如要針對每個要求啟用多語言偵測功能,請為每個個別回應將 enableMultiLanguageDetection
旗標設為 true
。你也可以指定來源語言,取得更準確的結果。如果未指定來源語言,系統會自動偵測,提供多語言支援。
curl -X POST \ -d '{"userPromptData":{"text":"[UNSAFE TEXT]"}, "multiLanguageDetectionMetadata": { "enableMultiLanguageDetection": true , "sourceLanguage": "jp"}}' \ -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:sanitizeModelResponse"
更改下列內容:
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-04 (世界標準時間)。