Auf dieser Seite wird ausführlich beschrieben, wie Sie Prompts und Antworten bereinigen. Model Armor bietet eine Reihe von Filtern zum Schutz Ihrer KI-Anwendungen. Model Armor prüft Prompts und Antworten anhand der konfigurierten Konfidenzniveaus für die Überprüfung.
Hinweise
Erstellen Sie eine Vorlage gemäß der Anleitung unter Vorlagen erstellen.
Erforderliche Berechtigungen erhalten
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Model Armor zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Bereinigen von Prompts und Antworten benötigen:
-
Model Armor User (
roles/modelarmor.user
) -
Model Armor Viewer (
roles/modelarmor.viewer
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
APIs aktivieren
Sie müssen die Model Armor APIs aktivieren, bevor Sie Model Armor verwenden können.
Console
Enable the Model Armor API.
Wählen Sie das Projekt aus, für das Sie Model Armor aktivieren möchten.
gcloud
Führen Sie die folgenden Schritte mit der Google Cloud CLI und der Model Armor API aus, bevor Sie beginnen:
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.
Führen Sie den folgenden Befehl aus, um den API-Endpunkt für den Model Armor-Dienst festzulegen.
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
Ersetzen Sie
LOCATION
durch die Region, in der Sie Model Armor verwenden möchten.SDP_PROJECT_ID
: die ID des Projekts, zu dem die erweiterte Vorlage für den Schutz sensibler Daten gehört.PROJECT_NUMBER
: die Nummer des Projekts, zu dem die Vorlage gehört.PROJECT_ID
: die ID des Projekts für die Vorlage.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.PROJECT_ID
: die ID des Projekts für die Vorlage.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.PROJECT_ID
: die ID des Projekts, zu dem die Vorlage gehört.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.FILE_TYPE
: Das Format der Eingabedatei.CREDIT_CARD_NUMBER
: Eine Kreditkartennummer ist 12 bis 19 Ziffern lang. Sie wird weltweit für Zahlungsvorgänge verwendet.FINANCIAL_ACCOUNT_NUMBER
: Eine Nummer, die sich auf ein bestimmtes Finanzkonto bezieht, z. B. eine Bankkontonummer oder eine Rentenkontonummer.GCP_CREDENTIALS
: Google Cloud Anmeldedaten des Dienstkontos. Anmeldedaten, die zur Authentifizierung bei {api_client_lib_name} und Dienstkonten verwendet werden können.GCP_API_KEY
: Google Cloud API-Schlüssel. Ein verschlüsselter String, der beim Aufrufen von Google Cloud APIs verwendet wird, die nicht auf private Nutzerdaten zugreifen müssen.PASSWORD
: Klartext-Passwörter in Konfigurationen, Code und anderem Text.US_SOCIAL_SECURITY_NUMBER
: Eine US-amerikanische Sozialversicherungsnummer (SSN) ist eine 9-stellige Nummer für US-Staatsbürger, Inhaber einer unbeschränkten und Inhaber einer zeitlich beschränkten Aufenthaltsgenehmigung. Dieser Detektor gleicht keine Nummern ab, bei denen in einer der Zahlengruppen nur Nullen enthalten sind (d. h. 000-##-####, ###-00-#### oder ###-##-0000), deren erste Zahlengruppe 666 lautet oder deren erste Ziffer eine 9 ist.US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
: Eine US-amerikanische Steueridentifikationsnummer für Einzelpersonen (Individual Taxpayer Identification Number, ITIN) ist eine Art Steueridentifikationsnummer (Tax Identification Number, TIN), die vom IRS (Internal Revenue Service) ausgestellt wird. Eine ITIN ist eine Steuerbearbeitungsnummer, verfügbar nur für bestimmte nicht ansässige und ansässige Ausländer, deren Ehepartner und Familienangehörige, die keine Sozialversicherungsnummer (SSN) erhalten können.TEMPLATE_ID
: die ID der Vorlage.LOCATION
: der Speicherort der Vorlage.PROJECT_ID
: die ID des Projekts, zu dem die Vorlage gehört.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.PROJECT_ID
: die ID des Projekts, zu dem die Vorlage gehört.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.TEMPLATE_ID
: die ID der Vorlage.LOCATION
: der Speicherort der Vorlage.PROJECT_ID
: die ID des Projekts, zu dem die Vorlage gehört.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.PROJECT_ID
: die ID des Projekts, zu dem die Vorlage gehört.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.PROJECT_ID
: die ID des Projekts, zu dem die Vorlage gehört.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.Dieses Beispiel gibt die folgende Antwort zurück:
{ "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
: die ID des Projekts, zu dem die Vorlage gehört.LOCATION
: der Speicherort der Vorlage.TEMPLATE_ID
: die ID der Vorlage.- Weitere Informationen zu Model Armor
- Weitere Informationen zu Model Armor-Mindesteinstellungen
- Weitere Informationen zu Model Armor-Vorlagen
- Probleme mit Model Armor beheben
Führen Sie den folgenden Befehl aus, um Model Armor zu aktivieren.
gcloud services enable modelarmor.googleapis.com --project=PROJECT_ID
Ersetzen Sie PROJECT_ID
durch die ID des Projekts.
Weisen Sie im Projekt, das die Sensitive Data Protection-Vorlage enthält, dem Dienst-Agent, der im Rahmen des Schritts Vorlagen erstellen für den erweiterten Schutz sensibler Daten erstellt wurde, die Rolle „DLP-Nutzer“ (roles/dlp.user
) und die Rolle „DLP-Leser“ (roles/dlp.reader
) zu.
Überspringen Sie diesen Schritt, wenn sich die Vorlage für den Schutz sensibler Daten im selben Projekt wie die Model Armor-Vorlage befindet.
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
Ersetzen Sie Folgendes:
Prompts bereinigen
Bereinigen Sie Prompts, um schädliche Eingaben zu verhindern und dafür zu sorgen, dass sichere und angemessene Prompts an Ihre LLMs gesendet werden.
Text-Prompts
Model Armor bereinigt Text-Prompts, indem der Text analysiert und verschiedene Filter angewendet werden, um potenzielle Bedrohungen zu erkennen und zu minimieren.
REST
Verwenden Sie den folgenden Befehl, um einen Text-Prompt in Model Armor zu bereinigen.
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"
Ersetzen Sie Folgendes:
Das führt zu folgender Antwort: MATCH_FOUND
fällt in die Kategorie „Gefährlich“.
{ "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
Java
Node.js
PHP
Python
Um diesen Code auszuführen, müssen Sie eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.
Das führt zu folgender Antwort:
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 }
Text-Prompts mit aktivierter mehrsprachiger Erkennung bereinigen
Sie können die mehrsprachige Erkennung für jede Anfrage einzeln aktivieren, indem Sie das Flag enableMultiLanguageDetection
für jede Anfrage auf true
setzen.
Optional können Sie die Quellsprache angeben, um genauere Ergebnisse zu erhalten. Wenn die Quellsprache nicht angegeben ist, wird sie automatisch erkannt, um die Unterstützung mehrerer Sprachen zu ermöglichen.
Verwenden Sie den folgenden Befehl, um einen Text-Prompt in Model Armor zu bereinigen, wobei die mehrsprachige Erkennung auf Anfrageebene aktiviert ist.
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"
Ersetzen Sie Folgendes:
Dateibasierte Prompts
Wenn Sie einen Prompt bereinigen möchten, der in einer Datei gespeichert ist, geben Sie den Dateiinhalt im Base64-Format an. Model Armor erkennt den Dateityp nicht automatisch. Sie müssen das Feld byteDataType
explizit festlegen, um das Dateiformat anzugeben. Wenn das Feld fehlt oder nicht angegeben ist, schlägt die Anfrage fehl. Mögliche byteDataType
-Werte sind PLAINTEXT_UTF8
, PDF
, WORD_DOCUMENT
, EXCEL_DOCUMENT
, POWERPOINT_DOCUMENT
, TXT
und 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"
Ersetzen Sie Folgendes:
Go
Java
Node.js
PHP
Python
Um diesen Code auszuführen, müssen Sie eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.
Grundlegende Konfiguration von Sensitive Data Protection
Model Armor ist in Sensitive Data Protection integriert, um die versehentliche Offenlegung privater Informationen zu verhindern. Erstellen Sie eine Vorlage mit aktivierten grundlegenden Einstellungen für Sensitive Data Protection. Mit der einfachen Version von Sensitive Data Protection können Sie nach einer festen Gruppe von infoTypes für den Schutz sensibler Daten suchen.
Die folgenden infoTypes für den Schutz sensibler Daten werden im Prompt für alle Regionen gescannt:
Die folgenden zusätzlichen infoTypes für den Schutz sensibler Daten werden im Prompt für Regionen in den USA gescannt:
Hier sehen Sie ein Beispiel für eine einfache Konfiguration für den Schutz sensibler Daten:
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --project=PROJECT_ID \ --basic-config-filter-enforcement=enabled
Ersetzen Sie Folgendes:
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"
Ersetzen Sie Folgendes:
Go
Java
Node.js
PHP
Python
Um diesen Code auszuführen, müssen Sie eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.
Verwenden Sie die erstellte Vorlage, um Ihre Prompts zu prüfen. Beispiel:
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"
Ersetzen Sie Folgendes:
Dieses Beispiel gibt die folgende Antwort zurück:
{ "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" } } } ] } } } ] } }
Erweiterte Konfiguration des Schutzes sensibler Daten
Model Armor überprüft die LLM-Prompts und ‑Antworten mithilfe der erweiterten Konfigurationseinstellung für den Schutz sensibler Daten. So können Sie die Funktionen von Sensitive Data Protection über die infoTypes hinaus nutzen, die in der grundlegenden Einstellung für Sensitive Data Protection angeboten werden.
Wenn Sie den erweiterten Filter für den Schutz sensibler Daten in Model Armor verwenden möchten, müssen sich die Vorlagen für den Schutz sensibler Daten am selben Cloud-Speicherort wie die Model Armor-Vorlage befinden.
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --advanced-config-inspect-template="path/to/template" \
Ersetzen Sie Folgendes:
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"
Ersetzen Sie Folgendes:
Dieses Beispiel gibt die folgende Antwort zurück:
{ "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
Java
Node.js
PHP
Python
Um diesen Code auszuführen, müssen Sie eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.
Verwenden Sie die erstellte Vorlage, um Ihre Prompts zu prüfen. Beispiel:
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"
Ersetzen Sie Folgendes:
Dieses Beispiel gibt die folgende Antwort zurück:
{ "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"] } } } ] } }
Modellantwort bereinigen
LLMs können manchmal schädliche Antworten generieren. Um die Risiken zu verringern, die mit der Verwendung von LLMs in Ihren Anwendungen verbunden sind, ist es wichtig, die Antworten zu bereinigen.
Hier ist ein Beispielbefehl zum Bereinigen einer Modellantwort in 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"
Ersetzen Sie Folgendes:
Go
Java
Node.js
PHP
Python
Um diesen Code auszuführen, müssen Sie eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.
Modellantwort mit aktivierter mehrsprachiger Erkennung bereinigen
Sie können die mehrsprachige Erkennung für jede Anfrage aktivieren, indem Sie das Flag enableMultiLanguageDetection
für jede einzelne Antwort auf true
setzen.
Optional können Sie die Quellsprache angeben, um genauere Ergebnisse zu erhalten. Wenn die Quellsprache nicht angegeben ist, wird sie automatisch erkannt, um die Unterstützung mehrerer Sprachen zu ermöglichen.
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"
Ersetzen Sie Folgendes:
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-19 (UTC).