Sie können in Model Armor vorlagenspezifische Ausschlussregeln konfigurieren, um falsch positive Erkennungen zu minimieren. Ausschlussregeln sind vorlagenspezifische Regeln, die reguläre Ausdrücke oder Wortgruppen enthalten, die von der Erkennung ausgeschlossen werden sollen.
Unterstützte Filter
Sie können Ausschlussregeln für die folgenden Filter verwenden:
- Erkennung von Prompt Injection und Jailbreaking (
PROMPT_INJECTION_AND_JAILBREAK) - Sicherheitsfilter für verantwortungsbewusste KI (
RESPONSIBLE_AI)
Wann Ausschlussregeln verwendet werden sollten
Verwenden Sie vorlagenspezifische Ausschlussregeln, wenn Sie bekannte falsch positive Erkennungen für bestimmte Arbeitslasten unterdrücken möchten, ohne einen Filter vollständig zu deaktivieren:
- Domainspezifische oder technische Terminologie: Ihre Anwendung verarbeitet Fachvokabular, z. B. Befehle für die Systemverwaltung (
kill process,abort transaction), Terminologie für Sicherheitstests (penetration testing), wissenschaftliche Begriffe (blast search) oder Branchenidiome, die sich mit den Sicherheitskategorien für verantwortungsbewusste KI überschneiden. - Unbedenkliche Betriebs- oder Formatanweisungen: Ihre Nutzer oder Prompt-Vorlagen enthalten legitime Anweisungen, die Imperativverben (wie
"ignore case when sorting this list","ignore empty rows"oder"Summarize my inbox and ignore the emails from the marketing vendor.") verwenden, die fälschlicherweise als Prompt Injection und Jailbreaking erkannt werden. - Gezielte Abhilfe während des Wartens auf Modellaktualisierungen: Sie benötigen eine sofortige Problemumgehung für ein verifiziertes falsch positives Ergebnis in einem bestimmten Anwendungsworkflow, während der Filter für alle anderen Eingaben aktiv bleibt.
In der folgenden Tabelle wird beschrieben, wann die einzelnen Kombinationen aus Regeltyp und Übereinstimmungsbereich verwendet werden sollten. Weitere Informationen zur Funktionsweise des Abgleichs von Wörterbüchern und regulären Ausdrücken finden Sie unter Regeln für Wörterbücher und reguläre Ausdrücke und Funktionsweise des Abgleichs.
| Regelkonfiguration | Geeignet für | Beispiel |
|---|---|---|
Wörterbuchregel mit Teilübereinstimmung (MATCHING_SCOPE_PARTIAL_MATCH)
|
Sie haben eine feste Liste statischer Wörter oder Wortgruppen, die an einer beliebigen Stelle in einem Prompt oder einer Antwort vorkommen können. Weitere Informationen zum Verhalten beim Abgleich mit Wörterbüchern finden Sie unter Wörterbuch- und reguläre Ausdrucksregeln. |
Wörterbuch enthält die Wortgruppe Übereinstimmungen:
Stimmt nicht überein mit:
|
Wörterbuchregel mit vollständiger Übereinstimmung (MATCHING_SCOPE_FULL_MATCH)
|
Ihre Anwendung verwendet vordefinierte Prompt-Optionen (z. B. Schaltflächen für schnelle Antworten in der Benutzeroberfläche oder vordefinierte Befehle), bei denen die gesamte Eingabe mit einer bekannten Wortgruppe übereinstimmt, und Sie möchten verhindern, dass zusätzlicher, nicht geprüfter Text den Filter umgeht. Weitere Informationen zum Verhalten beim Abgleich mit Wörterbüchern finden Sie unter Wörterbuch- und reguläre Ausdrucksregeln. |
Wörterbuch enthält die Wortgruppe Übereinstimmungen:
Stimmt nicht überein mit:
|
Regel für regulären Ausdruck mit teilweiser Übereinstimmung (MATCHING_SCOPE_PARTIAL_MATCH)
|
Sie müssen strukturierte Muster, dynamische Kennungen oder bestimmte Verb- und Substantivkombinationen in größeren Prompts oder Antworten ausschließen. Weitere Informationen finden Sie unter Beispiele für Ausschlussmuster für reguläre Ausdrücke. |
Muster für regulären Ausdruck:
Übereinstimmungen:
Stimmt nicht überein mit:
|
Regel für reguläre Ausdrücke mit vollständiger Übereinstimmung (MATCHING_SCOPE_FULL_MATCH)
|
Die gesamte Eingabenutzlast folgt einem strengen strukturellen Format (z. B. einer automatisierten Test-ID oder einem strukturierten Befehl). |
Muster für regulären Ausdruck:
Übereinstimmungen:
Stimmt nicht überein mit:
|
Regionalen oder multiregionalen Endpunkt verwenden
Wenn Sie mit einer Model Armor-Vorlage arbeiten, müssen Sie einen regionalen oder multiregionalen Endpunkt (modelarmor.LOCATION.rep.googleapis.com) verwenden, der mit dem Standort der Vorlage übereinstimmt. Informationen dazu, wie die Datenresidenz für jede Region oder Multiregion erzwungen wird, finden Sie unter Erzwingung der Datenresidenz für Vorlagen.
Der globale Endpunkt (modelarmor.googleapis.com) unterstützt nicht die Verwaltung von Model Armor-Vorlagen oder die Bereinigung von Prompts und Antworten.
Hinweis
Führen Sie zuerst die folgenden Aufgaben aus.
Erforderliche Berechtigungen einholen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Model Armor Admin (roles/modelarmor.admin) für das Projekt zuzuweisen, das die Model Armor-Vorlage enthält, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren von Ausschlussregeln in Model Armor-Vorlagen benötigen.
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 API aktivieren, bevor Sie Model Armor verwenden können.
Console
Aktivieren Sie die Model Armor API, falls sie noch nicht aktiviert ist.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von RollenWählen Sie das Projekt aus, in dem 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:
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:
gcloud initAktivieren Sie die Model Armor API, falls sie noch nicht aktiviert ist:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable modelarmor.googleapis.com
API-Endpunktüberschreibung mit der gcloud CLI festlegen
Dieser Schritt ist nur erforderlich, wenn Sie die gcloud CLI mit Model Armor verwenden und eine andere Region oder Multiregion als die standardmäßige Multiregion us verwenden möchten. Sie müssen den API-Endpunkt-Überschreibung manuell festlegen, damit die gcloud CLI Anfragen korrekt an den Model Armor-Dienst weiterleitet.
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 oder Multiregion, in der Sie Model Armor verwenden möchten.
Funktionsweise von Ausschlussregeln
Sie konfigurieren Ausschlussregeln mithilfe der Model Armor API.
Wörterbuch- und Regeln für reguläre Ausdrücke
Sie können in einer Model Armor-Vorlage zwei Arten von Ausschlussregeln definieren:
- Wörterbuchregeln: Geben Sie eine Liste von Wörtern oder Wortgruppen (
wordList, bis zu 128 KB pro Wörterbuch) an, die ausgeschlossen werden sollen. Ein Wörterbuch muss mindestens eine Wortgruppe enthalten und jede Wortgruppe muss mindestens zwei Zeichen enthalten, die Buchstaben oder Ziffern sind. Der Wörterbuchabgleich funktioniert so:- Groß-/Kleinschreibung: Bei Wörtern und Wortgruppen im Wörterbuch wird die Groß-/Kleinschreibung nicht berücksichtigt.
- Nicht alphanumerische Zeichen: Beim Suchen nach Übereinstimmungen werden alle Zeichen außer Buchstaben und Ziffern in der Basic Multilingual Plane von Unicode durch Leerzeichen ersetzt. Beispiel: Der Wörterbuchausdruck
Sam Johnsonstimmt mitsam johnson,Sam, JohnsonundSam (Johnson)überein. Wörterbuchformulierungen, die viele Zeichen enthalten, die keine Buchstaben oder Ziffern sind, können zu unerwarteten Übereinstimmungen führen, da diese Zeichen als Leerzeichen behandelt werden. - Zeichengrenzen: Die Zeichen, die eine Übereinstimmung umgeben, müssen einen anderen Zeichentyp haben als die angrenzenden Zeichen innerhalb des Wörterbuchworts. Buchstaben müssen an Nicht-Buchstaben und Ziffern an Nicht-Ziffern angrenzen. Beispiel: Das Wörterbuchwort
jenstimmt mit den ersten drei Buchstaben vonjen123überein, aber nicht mitjennifer.
- Regeln für reguläre Ausdrücke: Geben Sie ein Muster für reguläre Ausdrücke (bis zu 1.000 Zeichen) an,das abgeglichen und ausgeschlossen werden soll. Beim Abgleich regulärer Ausdrücke muss die Groß-/Kleinschreibung standardmäßig berücksichtigt werden. Wenn Sie eine Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung durchführen möchten, fügen Sie das Flag
(?i)in Ihr Muster ein. Beispielsweise führt(?i)kill process [0-9]+zu Übereinstimmungen mitkill process 1234undKill Process 1234.
Zuordnung
Jede Ausschlussregel unterstützt das Feld matchingScope, das angibt, wie Model Armor Eingabeinhalte mit der Regel abgleicht:
- Teilweise Übereinstimmung (
MATCHING_SCOPE_PARTIAL_MATCH, Standard):- Wörterbuchregeln: Es wird eine Übereinstimmung gefunden, wenn ein Wort oder eine Wortgruppe im Wörterbuch mit einem Teilstring im Eingabeinhalt übereinstimmt, vorbehaltlich der Regeln für Zeichengrenzen im Wörterbuch. Beispiel: Der Wörterbuchausdruck
ignore empty rowsstimmt mitignore empty rows,ignore EMPTY-rowsundPlease ignore empty rows and summarize this tableüberein, aber nicht mitignore rowsoderignore the empty rows. - Regeln für reguläre Ausdrücke: Stimmt überein, wenn ein Teilstring im Eingabeinhalt mit dem Muster des regulären Ausdrucks übereinstimmt.
- Streaming-Unterstützung: Wird sowohl im gepufferten Streamingmodus (
STREAMING_MODE_BUFFERED) als auch im Echtzeit-Streamingmodus (STREAMING_MODE_REALTIME, Standard) unterstützt. Weitere Informationen finden Sie unter Ausschlussregeln bei der Bereinigung von Streams.
- Wörterbuchregeln: Es wird eine Übereinstimmung gefunden, wenn ein Wort oder eine Wortgruppe im Wörterbuch mit einem Teilstring im Eingabeinhalt übereinstimmt, vorbehaltlich der Regeln für Zeichengrenzen im Wörterbuch. Beispiel: Der Wörterbuchausdruck
- Vollständige Übereinstimmung (
MATCHING_SCOPE_FULL_MATCH):- Wörterbuchregeln: Übereinstimmungen werden nur gefunden, wenn der Wörterbucheintrag den gesamten Eingabeinhalt abdeckt. Beispiel: Der Wörterbuchbegriff
ignore empty rowsstimmt mitignore empty rowsundignore EMPTY-rowsüberein, aber nicht mitplease ignore empty rowsoderignore rows. - Regeln für reguläre Ausdrücke: Stimmt nur überein, wenn das Muster des regulären Ausdrucks mit dem gesamten Eingabeinhalt übereinstimmt.
- Streaming-Unterstützung: Wird nur im gepufferten Streaming-Modus (
STREAMING_MODE_BUFFERED) unterstützt. Weitere Informationen finden Sie unter Ausschlussregeln bei der Streaming-Bereinigung.
- Wörterbuchregeln: Übereinstimmungen werden nur gefunden, wenn der Wörterbucheintrag den gesamten Eingabeinhalt abdeckt. Beispiel: Der Wörterbuchbegriff
Überschreibungen von Ausschlussregeln während der Bereinigung
Wenn eine Vorlage Ausschlussregeln enthält, wertet Model Armor diese Regeln während der Bereinigung von Prompts und Modellantworten aus, wenn ein Filter für die Erkennung von Prompt Injection und Jailbreaking (PROMPT_INJECTION_AND_JAILBREAK) oder für die verantwortungsbewusste Anwendung von KI (RESPONSIBLE_AI) eine potenzielle Übereinstimmung identifiziert:
- Regel stimmt mit der Eingabe überein: Wenn eine Ausschlussregel mit einem Teilstring (
MATCHING_SCOPE_PARTIAL_MATCH, Standard) oder der gesamten Eingabe von Anfang bis Ende (MATCHING_SCOPE_FULL_MATCH) übereinstimmt, überschreibt Model Armor einMATCH_FOUND- oderEXECUTION_SKIPPED-Filterergebnis und setztmatchStatefür diesen gesamten unterstützten Filtertyp (einschließlich aller verantwortungsbewussten KI-Sicherheitskategorien fürRESPONSIBLE_AI) aufNO_MATCH_FOUND, anstatt einzelne Wortgruppen oder Bereiche innerhalb der Eingabe auszuschließen. In der Bereinigungsantwort istfilterMatchStategleichNO_MATCH_FOUND, wenn nichts Schädliches erkannt wird oder wenn Ausschlussregeln Filterergebnisse überschreiben. Aktivieren Sie zur Fehlerbehebung Cloud Logging für Bereinigungsvorgänge (logSanitizeOperations) in der Vorlage und filtern Sie nach den Labelsmodelarmor.googleapis.com/exclusion_rule_overridden_filtersodermodelarmor.googleapis.com/exclusion_rule_skipped_filters. Model Armor protokolliert diese Labels, wenn Ausschlussregeln Filterergebnisse überschreiben oder wenn derexecutionStateeines FiltersEXECUTION_SKIPPEDist. Weitere Informationen finden Sie unter Logs für Ausschlussregeln ansehen. - Regel stimmt nicht mit der vollständigen Eingabe (
MATCHING_SCOPE_FULL_MATCH) überein: Wenn die Eingabe zusätzlichen Text über die konfigurierte Wortgruppe oder das konfigurierte Muster hinaus enthält, stimmt die Regel nicht überein und der Filter behältMATCH_FOUNDbei. - Eingabe überschreitet 130.000 Tokens (0,5 MB): Ausschlussregeln werten nur die ersten 130.000 Tokens (0,5 MB) des Eingabetexts aus.
Eine Nutzlast von 0,5 MB unterstützt etwa 130.000 Tokens für englischen Text (bei etwa 4 Zeichen pro Token). Bei nicht englischsprachigem Text kann die Anzahl der unterstützten Tokens je nach Sprache variieren, da nicht englischsprachige Zeichen mehr Byte pro Zeichen erfordern. Wenn eine Eingabe 130.000 Tokens (0,5 MB) überschreitet und ein Filter eine Übereinstimmung außerhalb des anfänglich gescannten Teils erkennt, gibt der Filter
EXECUTION_SKIPPEDzurück. Weitere Informationen zumessageItems-Werten und Nutzlastlimits finden Sie unter Systemlimits für Ausschlussregeln.
Beispiele für das Bereinigen von Prompts und Modellantworten mit Ausschlussregeln finden Sie unter Prompt mit einer Ausschlussregel bereinigen und Antwort mit einer Ausschlussregel bereinigen.
Ausschlussregeln bei der Bereinigung von Streams
Model Armor unterstützt Ausschlussregeln in den Streamingmethoden StreamSanitizeUserPrompt und StreamSanitizeModelResponse.
Wie Model Armor Ausschlussregeln auswertet, hängt vom Streamingmodus (streamingMode) ab, der in der Anfrage angegeben ist:
- Zwischenspeichermodus (
STREAMING_MODE_BUFFERED): Unterstützt sowohlMATCHING_SCOPE_PARTIAL_MATCH(Standard) als auchMATCHING_SCOPE_FULL_MATCH. Model Armor erfasst alle gestreamten Blöcke und wertet Ausschlussregeln für den gesamten gestreamten Inhalt aus:- Teilweise Übereinstimmung (
MATCHING_SCOPE_PARTIAL_MATCH): Wenn eine Wörterbuchphrase oder ein regulärer Ausdruck mit einem Teilstring im gestreamten Inhalt übereinstimmt, überschreibt Model Armor das Filterergebnis und setztmatchStatefür diesen Filtertyp aufNO_MATCH_FOUND. - Vollständige Übereinstimmung (
MATCHING_SCOPE_FULL_MATCH): Wenn eine Wörterbuchphrase oder ein regulärer Ausdruck mit dem gesamten gestreamten Inhalt von Anfang bis Ende übereinstimmt, überschreibt Model Armor das Filterergebnis und setztmatchStatefür diesen Filtertyp aufNO_MATCH_FOUND. Wenn ein Block Text über die konfigurierte Wortgruppe oder das konfigurierte Muster hinaus hinzufügt, stimmt die Regel nicht überein und der Filter behältMATCH_FOUNDbei.
- Teilweise Übereinstimmung (
- Echtzeitmodus (
STREAMING_MODE_REALTIME, Standard): UnterstütztMATCHING_SCOPE_PARTIAL_MATCH(Standard) und nichtMATCHING_SCOPE_FULL_MATCH.- Teilweise Übereinstimmung (
MATCHING_SCOPE_PARTIAL_MATCH): Model Armor wertet jeden verarbeiteten Block unabhängig aus (wird insanitizationMetadata.streamChunkProcessedzurückgegeben, wennfilterMatchStateden WertNO_MATCH_FOUNDhat). Wenn ein Wörterbuchbegriff oder ein regulärer Ausdruck in einem verarbeiteten Block übereinstimmt, überschreibt Model Armor das Filterergebnis und setztmatchStatefür diesen Block aufNO_MATCH_FOUND. Nachfolgende Blöcke im Stream werden weiterhin unabhängig ausgewertet. Wenn eine ausgeschlossene Wortgruppe oder ein ausgeschlossenes Muster auf separate verarbeitete Blöcke aufgeteilt ist, stimmen die Teilfragmente nicht überein. Wenn ein früherer Block einMATCH_FOUND-Urteil auslöst, ohne dass eine Ausschlussregel zutrifft, bleibt der Stream für nachfolgende Blöcke blockiert. - Vollständige Übereinstimmung (
MATCHING_SCOPE_FULL_MATCH): Nicht unterstützt. Wenn eine Vorlage eine Ausschlussregel mitMATCHING_SCOPE_FULL_MATCHenthält und die Anfrage den Echtzeit-Streamingmodus verwendet, lehnt Model Armor die Anfrage mit dem folgendenINVALID_ARGUMENT-Fehler ab:Invalid filter rule settings: FULL_MATCH matching scope is not supported in real-time streaming mode. UsePARTIAL_MATCHorSTREAMING_MODE_BUFFERED`.
- Teilweise Übereinstimmung (
Beispiele für die Bereinigung von Streaming mit Ausschlussregeln finden Sie unter Streaming-Prompt mit einer Ausschlussregel bereinigen und Streaming-Antwort mit einer Ausschlussregel bereinigen.
Hinweise
Beachten Sie beim Konfigurieren von Ausschlussregeln Folgendes:
- Ausschlussregeln gelten nur für die Vorlage, in der Sie sie definieren. Ausschlussregeln können nicht für mehrere Vorlagen freigegeben werden.
- Sie können Ausschlussregeln für einen unterstützten Filtertyp nur konfigurieren, wenn dieser Filter in der Vorlage aktiviert ist.
Setzen Sie für die Erkennung von Prompt Injection und Jailbreaking (
PROMPT_INJECTION_AND_JAILBREAK)filterEnforcementinpiAndJailbreakFilterSettingsaufENABLED. Wenn Sie Sicherheitsfilter für verantwortungsbewusste Anwendung von KI (RESPONSIBLE_AI) aktivieren möchten, konfigurieren Sie mindestens eine Sicherheitskategorie für verantwortungsbewusste Anwendung von KI inraiSettings.raiFilters. - Model Armor unterstützt keine Ausschlussregeln in den Mindesteinstellungen.
- Bei der Streaming-Bereinigung unterstützt Model Armor Ausschlussregeln für vollständige Übereinstimmungen (
MATCHING_SCOPE_FULL_MATCH) nur im gepufferten Modus (STREAMING_MODE_BUFFERED). Wenn SieMATCHING_SCOPE_FULL_MATCHim Echtzeitmodus (STREAMING_MODE_REALTIME, dem Standard-Streamingmodus) verwenden, wird der folgendeINVALID_ARGUMENT-Fehler zurückgegeben:Invalid filter rule settings: FULL_MATCH matching scope is not supported in real-time streaming mode. UsePARTIAL_MATCHorSTREAMING_MODE_BUFFERED`. - Model Armor wertet Ausschlussregeln anhand des Roheingabetexts aus, bevor Texttransformationen wie De-Identifikation oder Übersetzung durchgeführt werden. Ausschlussregeln unterstützen keine mehrsprachige Erkennung oder automatische Übersetzung. Wenn Sie Inhalte in mehreren Sprachen ausschließen möchten, fügen Sie für jede Zielsprache sprachspezifische Wortgruppen oder reguläre Ausdrucksmuster hinzu.
- Ausschlussregeln bieten nur eingeschränkte Unterstützung für Sprachen mit nicht lateinischen Schriftzeichen und Multi-Byte-UTF-8-Zeichen. Insbesondere Wörterbuchregeln (
wordList) stimmen möglicherweise nicht wie erwartet mit Skripts überein, die kombinierte Zeichen (z. B. indische Skripts) oder Skripts ohne Leerzeichen zwischen Wörtern (z. B. Chinesisch und Japanisch) verwenden. Regeln für vollständige Übereinstimmungen (MATCHING_SCOPE_FULL_MATCH) stimmen nicht mit Eingaben überein, die UTF-8-Zeichen mit mehreren Byte enthalten. Wenn Sie Inhalte in nicht lateinischen Schriften oder Eingaben mit Multibyte-Zeichen ausschließen möchten, verwenden Sie Regeln für reguläre Ausdrücke (regex) mitMATCHING_SCOPE_PARTIAL_MATCH. - Für Ausschlussregeln gelten Systemlimits. Weitere Informationen finden Sie unter Systemlimits für Ausschlussregeln.
Vorlage mit Ausschlussregeln erstellen
Wenn Sie eine Vorlage mit Ausschlussregeln erstellen möchten, fügen Sie das Objekt filterRuleSettings in filterConfig in einer POST-Anfrage ein.
Im folgenden Beispiel wird eine Vorlage erstellt, die die Erkennung von Prompt Injection und Jailbreaking sowie Sicherheitsfilter für die verantwortungsbewusste Anwendung von KI aktiviert. Außerdem werden zwei Ausschlussregeln mit teilweiser Übereinstimmung (MATCHING_SCOPE_PARTIAL_MATCH) konfiguriert:
- Erkennung von Prompt Injection und Jailbreaking (
PROMPT_INJECTION_AND_JAILBREAK): Verwendet eine Wörterbuchregel, um Eingaben mit bestimmten Wortgruppen wieignore case when sorting this listoderignore empty rowsvon der Erkennung von Prompt Injection und Jailbreaking auszuschließen. - Responsible AI (
RESPONSIBLE_AI): Verwendet eine Regel für reguläre Ausdrücke, um Eingaben, die einem bestimmten Muster entsprechen, z. B.(?i)kill process [0-9]+, von der Sicherheitserkennung für Responsible AI auszuschließen.
export TEMPLATE_WITH_EXCLUSIONS='{
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED",
"confidenceLevel": "LOW_AND_ABOVE"
},
"raiSettings": {
"raiFilters": [
{
"filterType": "DANGEROUS",
"confidenceLevel": "LOW_AND_ABOVE"
},
{
"filterType": "HARASSMENT",
"confidenceLevel": "LOW_AND_ABOVE"
},
{
"filterType": "HATE_SPEECH",
"confidenceLevel": "LOW_AND_ABOVE"
},
{
"filterType": "SEXUALLY_EXPLICIT",
"confidenceLevel": "LOW_AND_ABOVE"
}
]
},
"filterRuleSettings": {
"ruleSets": [
{
"filterTypes": [
"PROMPT_INJECTION_AND_JAILBREAK"
],
"rules": [
{
"exclusionRule": {
"dictionary": {
"wordList": {
"words": [
"EXCLUDED_PHRASE_1",
"EXCLUDED_PHRASE_2"
]
}
},
"matchingScope": "MATCHING_SCOPE_PARTIAL_MATCH"
}
}
]
},
{
"filterTypes": [
"RESPONSIBLE_AI"
],
"rules": [
{
"exclusionRule": {
"regex": {
"pattern": "EXCLUDED_REGEX_PATTERN"
},
"matchingScope": "MATCHING_SCOPE_PARTIAL_MATCH"
}
}
]
}
]
}
}
}'
curl -X POST \
-d "$TEMPLATE_WITH_EXCLUSIONS" \
-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"
Ersetzen Sie Folgendes:
EXCLUDED_PHRASE_1undEXCLUDED_PHRASE_2: Die Wörter oder Wortgruppen aus dem Wörterbuch, die von der Erkennung von Prompt Injection und Jailbreaking ausgeschlossen werden sollen, z. B.ignore case when sorting this listundignore empty rows.EXCLUDED_REGEX_PATTERN: Das Muster des regulären Ausdrucks, das von der Sicherheitserkennung für verantwortungsbewusste KI ausgeschlossen werden soll, z. B.(?i)kill process [0-9]+.PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.LOCATION: der Standort der Vorlage.TEMPLATE_ID: die ID der Vorlage.
Dieser Befehl gibt eine Antwort wie die folgende zurück:
{
"filterConfig": {
"raiSettings": {
"raiFilters": [
{
"filterType": "DANGEROUS",
"confidenceLevel": "LOW_AND_ABOVE"
},
{
"filterType": "HARASSMENT",
"confidenceLevel": "LOW_AND_ABOVE"
},
{
"filterType": "HATE_SPEECH",
"confidenceLevel": "LOW_AND_ABOVE"
},
{
"filterType": "SEXUALLY_EXPLICIT",
"confidenceLevel": "LOW_AND_ABOVE"
}
]
},
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED",
"confidenceLevel": "LOW_AND_ABOVE"
},
"filterRuleSettings": {
"ruleSets": [
{
"filterTypes": [
"PROMPT_INJECTION_AND_JAILBREAK"
],
"rules": [
{
"exclusionRule": {
"dictionary": {
"wordList": {
"words": [
"ignore case when sorting this list",
"ignore empty rows"
]
}
},
"matchingScope": "MATCHING_SCOPE_PARTIAL_MATCH"
}
}
]
},
{
"filterTypes": [
"RESPONSIBLE_AI"
],
"rules": [
{
"exclusionRule": {
"regex": {
"pattern": "(?i)kill process [0-9]+"
},
"matchingScope": "MATCHING_SCOPE_PARTIAL_MATCH"
}
}
]
}
]
}
},
"templateMetadata": {
"dataResidencyCompliant": true
}
}
Ausschlussregeln in einer Vorlage aktualisieren
Wenn Sie die Ausschlussregeln in einer vorhandenen Vorlage aktualisieren möchten, senden Sie eine PATCH-Anfrage, wobei updateMask auf filterConfig.filterRuleSettings festgelegt ist. Da das Update das gesamte Feld filterRuleSettings ersetzt, müssen Sie alle Regeln, die Sie beibehalten möchten, zusammen mit Ihren Änderungen angeben.
Im folgenden Beispiel werden die Ausschlussregeln aus dem vorherigen Beispiel aktualisiert. Dazu wird dem Regelsatz PROMPT_INJECTION_AND_JAILBREAK eine Regel für reguläre Ausdrücke hinzugefügt und der Regelsatz RESPONSIBLE_AI entfernt:
export EXCLUSION_RULES_UPDATE='{
"filterConfig": {
"filterRuleSettings": {
"ruleSets": [
{
"filterTypes": [
"PROMPT_INJECTION_AND_JAILBREAK"
],
"rules": [
{
"exclusionRule": {
"dictionary": {
"wordList": {
"words": [
"EXCLUDED_PHRASE_1",
"EXCLUDED_PHRASE_2"
]
}
},
"matchingScope": "MATCHING_SCOPE_PARTIAL_MATCH"
}
},
{
"exclusionRule": {
"regex": {
"pattern": "EXCLUDED_REGEX_PATTERN"
},
"matchingScope": "MATCHING_SCOPE_FULL_MATCH"
}
}
]
}
]
}
}
}'
curl -X PATCH \
-d "$EXCLUSION_RULES_UPDATE" \
-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.filterRuleSettings"
Ersetzen Sie Folgendes:
EXCLUDED_PHRASE_1undEXCLUDED_PHRASE_2: Die Wörter oder Wortgruppen aus dem Wörterbuch, die von der Erkennung von Prompt Injection und Jailbreaking ausgeschlossen werden sollen, z. B.ignore case when sorting this listundignore empty rows.EXCLUDED_REGEX_PATTERN: das Muster des regulären Ausdrucks, das von der Erkennung von Prompt Injection und Jailbreaking ausgeschlossen werden soll, z. B.(?i)\\b(?:ignore\\s+(?:the\\s+)?(?:emails?|spams?|warnings?|drafts?|typos?|duplicates?|noise))\\b.PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.LOCATION: der Standort der Vorlage.TEMPLATE_ID: die ID der Vorlage.
Beispiele für Ausschlussmuster mit regulären Ausdrücken
Wenn Sie Ausschlussregeln für reguläre Ausdrücke schreiben, sollten Sie Ihre Muster auf bestimmte Domainbegriffe oder Zielsubstantive beschränken, damit Model Armor bekannte falsch positive Ergebnisse ausschließt, ohne echte Sicherheits- oder Richtlinienverstöße zu ignorieren. Wenn Sie Muster für reguläre Ausdrücke in JSON-Anfragetexten ("pattern") übergeben, müssen Sie jeden Backslash mit einem zweiten Backslash maskieren (z. B. \\b und \\s).
Beispiele für die Erkennung von Prompt Injection und Jailbreaking
Imperative Verben wie ignore, disregard, bypass oder override kommen häufig sowohl in bösartigen Prompt-Injections als auch in legitimen Anweisungen für die E‑Mail-Triage, Datenformatierung, Fehlerbehandlung oder Systemkonfiguration vor. Damit Sie nicht zu viele Prompts ausschließen, kombinieren Sie Wortgrenzen (\\b), nicht erfassende Gruppen ((?:...)) und das Flag für Groß-/Kleinschreibung ((?i)) mit MATCHING_SCOPE_PARTIAL_MATCH, um Ihren regulären Ausdruck an bestimmten operativen Zielsubstantiven zu verankern.
Die folgende Tabelle enthält ein Beispiel für ein reguläres Ausdrucksmuster für Teilübereinstimmungen (mit JSON-maskierten Backslashes) und ein Beispiel für einen Prompt für ein häufiges Szenario mit falsch positiven Ergebnissen bei Prompt Injection und Jailbreak.
| Anleitungskategorie | Triggerbegriffe | Falsch-positive Szenarien | Beispiel für ein Muster für reguläre Ausdrücke mit teilweiser Übereinstimmung | Beispielprompt |
|---|---|---|---|---|
| Inhaltssortierung und -filterung | ignore, disregard |
E-Mail-Triage, Fehlerbehandlung und Überprüfung von Entwürfen |
(?i)\\b(?:ignore\\s+(?:the\\s+)?(?:emails?|spams?|warnings?|drafts?|typos?|duplicates?|noise))\\b
|
Summarize my inbox and ignore the emails from the marketing vendor.
|
Beispiele für Sicherheitsfilter für verantwortungsbewusste Anwendung von KI
Technische Dokumentation, Befehle für die Systemverwaltung und gängige Redewendungen enthalten oft Wörter, die sich mit den Sicherheitskategorien für verantwortungsbewusste KI überschneiden. Um falsch positive Ergebnisse bei größeren Prompts oder Antworten zu reduzieren, kombinieren Sie Wortgrenzen (\\b), nicht erfassende Gruppen ((?:...)) und das Flag für die Groß-/Kleinschreibung ((?i)) mit MATCHING_SCOPE_PARTIAL_MATCH.
Die folgende Tabelle enthält Beispiele für reguläre Ausdrucksmuster für Teilübereinstimmungen (mit JSON-maskierten Backslashes) und Beispiel-Prompts für gängige falsch positive Szenarien für Responsible AI.
| Risikokategorie | Triggerbegriffe | Falsch-positive Szenarien | Beispiel für ein Muster für reguläre Ausdrücke mit teilweiser Übereinstimmung | Beispielprompt |
|---|---|---|---|---|
| Gewalt oder Verletzungen | kill |
Prozessbeendigung, elektrische oder HLK-Schalter und gängige Redewendungen |
(?i)\\b(?:kill\\s+(?:-9|all|process(?:es)?|switch(?:es)?|jobs?|pods?|sessions?|bill|lights?)|time\\s+to\\s+kill|dressed\\s+to\\s+kill)\\b
|
Please kill all pods in the namespace. |
| Toxische oder anstößige Sprache | abort, terminate |
Datenbanktransaktionen, Missionslebenszyklus und Beschäftigungs- oder Vertragsbedingungen |
(?i)\\b(?:abort\\s+(?:transactions?|missions?|requests?|connections?|retry|retries)|terminate\\s+(?:contracts?|sessions?|threads?|instances?|connections?))\\b
|
Abort retry. |
| Teilstring-Übereinstimmungen in Domainbegriffen | Sich überschneidende Zeichenteilstrings | Akademische Begriffe, Botanik, Ornithologie, Luftfahrt und Eigennamen |
(?i)\\b(?:class(?:room|ic)?|assess(?:ment)?|associate|passive|peacock|cockpit|cocktail|dickens)\\b
|
I love reading Dickens. |
| Waffen oder Sprengstoffe | bomb, blast, detonate |
Bioinformatik, Unterhaltungsidiome und Industrieausrüstung oder -reinigung |
(?i)\\b(?:blast\\s+(?:search|alignment|radius|furnace)|box\\s+office\\s+bomb|had\\s+a\\s+blast)\\b
|
Run a blast search on the genetic sequence. |
Logs für Ausschlussregeln ansehen
Wenn Sie die Ergebnisse der Auswertung von Ausschlussregeln protokollieren möchten, legen Sie logSanitizeOperations auf true fest, wenn Sie das Logging in Vorlagen konfigurieren. Wenn das Logging aktiviert ist, schreibt Model Armor SanitizeOperationLogEntry-Logeinträge für die überwachte Ressource modelarmor.googleapis.com/SanitizeOperation in Cloud Logging.
Weitere Informationen zum Aktivieren und Abfragen von Bereinigungslogs finden Sie unter Logging konfigurieren.
Best Practices für die Konfiguration von Ausschlussregeln
Mit den folgenden Best Practices können Sie falsch positive Ergebnisse minimieren, ohne den Sicherheitsstatus Ihrer Vorlage zu beeinträchtigen:
- Regeln eng auf bestimmte Kontexte beschränken: Vermeiden Sie es, einzelne Verben oder allgemeine Begriffe (wie
ignore,killoderabort) auszuschließen oder uneingeschränkte Platzhalter (wie.*ignore.*) zu verwenden. DaMATCHING_SCOPE_PARTIAL_MATCHdiematchStatefür den gesamten Filter aufNO_MATCH_FOUNDüberschreibt, wenn ein Teilstring übereinstimmt, können zu allgemeine Regeln echte Verstöße an anderer Stelle im selben Prompt oder in derselben Antwort verdecken. Kombinieren Sie Triggerverben immer mit bestimmten Zielsubstantiven (z. B.ignore case when sorting this listoder(?i)kill process [0-9]+). - Wortgrenzen verwenden und Muster konsolidieren: Verwenden Sie in Regeln für reguläre Ausdrücke Wortgrenzen (
\b), um versehentliche Teilstring-Übereinstimmungen in nicht zusammenhängenden Wörtern zu vermeiden. Fassen Sie verwandte Wortgruppen mithilfe von nicht erfassenden Gruppen ((?:...)) und Alternativen (|) in einem einzigen regulären Ausdruck zusammen, um das Systemlimit von 10 Regeln pro Regelsatz nicht zu überschreiten. - Verwenden Sie
MATCHING_SCOPE_FULL_MATCHfür vorhersehbare Eingaben: Wenn Sie vordefinierte UI-Aufforderungen, vordefinierte Befehle oder automatisierte Test-Nutzlasten ausschließen, setzen SiematchingScopeaufMATCHING_SCOPE_FULL_MATCH(oder verankern Sie reguläre Ausdrücke mit^und$). Durch die Eingrenzung auf vollständige Übereinstimmungen wird verhindert, dass Nutzer schädliche Anweisungen an eine ausgeschlossene Wortgruppe anhängen, um die Erkennung zu umgehen. - Regeln für rohen, nicht transformierten Text schreiben: Model Armor wertet Ausschlussregeln vor der De-Identifikation oder Übersetzung aus. Achten Sie darauf, dass Ihre Muster dem ursprünglichen Format vor der De-Identifikation entsprechen, und fügen Sie sprachspezifische Wortgruppen oder Muster für reguläre Ausdrücke für jede Sprache hinzu, die Ihre Anwendung unterstützt.
- Temporäre Regeln nach Filterupgrades prüfen und deaktivieren: Wenn Sie eine Vorlage auf eine neuere Filterversion aktualisieren, sollten Sie Ihre falsch positiven Testfälle neu bewerten und Ausschlussregeln entfernen, die durch die aktualisierten Erkennungsmodelle behoben wurden.
Nächste Schritte
- Beispiele für das Bereinigen von Prompts und das Bereinigen von Modellantworten mit Ausschlussregeln finden Sie hier.
- Prüfen Sie die Systemlimits für Ausschlussregeln.
- Logging für Model Armor konfigurieren
- Model Armor-Vorlagen erstellen und verwalten