Vorlagenspezifische Ausschlussregeln konfigurieren

Sie können vorlagenspezifische Ausschlussregeln in Model Armor konfigurieren, um Falschmeldungen 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:

Wann sollten Ausschlussregeln verwendet werden?

Verwenden Sie vorlagenspezifische Ausschlussregeln, wenn Sie bekannte Falschmeldungen für bestimmte Arbeitslasten unterdrücken möchten, ohne einen Filter vollständig zu deaktivieren:

  • Domänenspezifische oder technische Terminologie: Ihre Anwendung verarbeitet Fachbegriffe wie Systemadministrationsbefehle (kill process, abort transaction), Begriffe für Sicherheitstests (penetration testing), wissenschaftliche Begriffe (blast search) oder branchenspezifische Ausdrücke, die sich mit den Sicherheitskategorien für verantwortungsbewusste Anwendung von KI überschneiden.
  • Gutartige Betriebs- oder Formatierungsanweisungen: Ihre Nutzer oder Prompt-Vorlagen enthalten legitime Anweisungen, in denen Imperative verwendet werden (z. B. "ignore case when sorting this list", "ignore empty rows" oder "Summarize my inbox and ignore the emails from the marketing vendor."), die in der Erkennung von Prompt Injection und Jailbreaking zu Falschmeldungen führen.
  • Gezielte Maßnahmen, während auf Modellupdates gewartet wird: Sie benötigen eine sofortige Umgehungslösung für ein bestätigtes falsch positives Ergebnis in einem bestimmten Anwendungs-Workflow, während der Filter für alle anderen Eingaben aktiv bleibt.

In der folgenden Tabelle wird beschrieben, wann die einzelnen Kombinationen aus Regeltyp und Abgleichsbereich verwendet werden sollten. Weitere Informationen zur Funktionsweise von Wörterbuch- und Regular Expression-Abgleich finden Sie unter Wörterbuch- und Regular Expression-Regeln 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 beliebiger Stelle in einem Prompt oder einer Antwort vorkommen können. Weitere Informationen zum Verhalten beim Abgleich mit dem Wörterbuch finden Sie unter Wörterbuch- und Regeln für reguläre Ausdrücke.

Das Wörterbuch enthält den Begriff ignore empty rows

Übereinstimmungen:

  • ignore empty rows
  • ignore EMPTY-rows
  • please ignore empty rows

Stimmt nicht überein:

  • ignore rows
  • ignore the empty rows
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 vorgefertigte Befehle), bei denen die gesamte Eingabe mit einem bekannten Ausdruck übereinstimmt, und Sie möchten verhindern, dass zusätzlicher ungeprüfter Text den Filter umgeht. Weitere Informationen zum Verhalten beim Abgleich mit einem Wörterbuch finden Sie unter Wörterbuch- und Regeln für reguläre Ausdrücke.

Das Wörterbuch enthält den Begriff ignore empty rows

Übereinstimmungen:

  • ignore empty rows
  • ignore EMPTY-rows

Stimmt nicht überein:

  • please ignore empty rows
  • ignore rows
Regel für regulären Ausdruck mit teilweiser Übereinstimmung (MATCHING_SCOPE_PARTIAL_MATCH) Sie müssen strukturierte Muster, dynamische Kennungen oder bestimmte Verb-Nomen-Kombinationen in größeren Prompts oder Antworten ausschließen. Weitere Informationen finden Sie unter Beispiel für Ausschlussmuster für reguläre Ausdrücke.

Muster für regulären Ausdruck: (?i)kill process [0-9]+

Übereinstimmungen:

  • kill process 1234
  • How do I Kill Process 99?

Stimmt nicht überein:

  • kill process abc
  • kill the process 1234
Regel für regulären Ausdruck mit vollständiger Übereinstimmung (MATCHING_SCOPE_FULL_MATCH) Die gesamte Eingabe-Payload folgt einem strengen strukturellen Format (z. B. einer automatischen Test-ID oder einem strukturierten Befehl).

Muster für regulären Ausdruck: (?i)^test_case_[0-9]+$

Übereinstimmungen:

  • test_case_42
  • TEST_CASE_001

Stimmt nicht überein:

  • run test_case_42
  • test_case_alpha

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 dem Standort der Vorlage entspricht.

Der globale Endpunkt (modelarmor.googleapis.com) unterstützt nicht die Verwaltung von Model Armor-Vorlagen oder das Bereinigen von Prompts und Antworten.

Hinweis

Führen Sie zuerst die folgenden Aufgaben aus.

Erforderliche Berechtigungen erhalten

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

  1. 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 Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

  2. Wä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:

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. 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 Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    gcloud services enable modelarmor.googleapis.com

  3. API-Endpunktüberschreibung mit der gcloud CLI festlegen

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 Standard-Multiregion us verwenden möchten. Sie müssen die 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 mit der Model Armor API.

Wörterbuch- und Regeln für reguläre Ausdrücke

Sie können zwei Arten von Ausschlussregeln in einer Model Armor-Vorlage definieren:

  • Wörterbuchregeln: Geben Sie eine Liste mit Wörtern oder Formulierungen an (wordList, bis zu 128 KB pro Wörterbuch), die ausgeschlossen werden sollen. Ein Wörterbuch muss mindestens einen Begriff enthalten und jeder Begriff muss mindestens zwei Buchstaben oder Ziffern enthalten. Der Wörterbuchabgleich funktioniert so:
    • Keine Berücksichtigung der Groß-/Kleinschreibung: Bei Wörtern und Wortgruppen im Wörterbuch wird nicht zwischen Groß- und Kleinschreibung unterschieden.
    • Nicht alphanumerische Zeichen: Beim Scannen nach Übereinstimmungen werden alle Zeichen, die keine Buchstaben oder Ziffern in der Basic Multilingual Plane (BMP) von Unicode sind, durch Leerzeichen ersetzt. Beispiel: Der Wörterbuchbegriff Sam Johnson entspricht sam johnson, Sam, Johnson und Sam (Johnson). Bei Wörterbuchformulierungen, die viele Zeichen enthalten, die keine Buchstaben oder Ziffern sind, kann es zu unerwarteten Übereinstimmungen kommen, da diese Zeichen als Leerzeichen behandelt werden.
    • Zeichengrenzen: Die Zeichen um eine Übereinstimmung herum müssen einen anderen Zeichentyp haben als die angrenzenden Zeichen im Wörterbuchwort. Buchstaben müssen an Zeichen angrenzen, die keine Buchstaben sind, und Ziffern müssen an Zeichen angrenzen, die keine Ziffern sind. Das Wörterbuchwort jen stimmt beispielsweise mit den ersten drei Buchstaben von jen123 überein, aber nicht mit jennifer.
  • 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 einen Abgleich 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 mit kill process 1234 und Kill Process 1234.

So funktioniert der Abgleich

Jede Ausschlussregel unterstützt das Feld matchingScope, in dem angegeben wird, wie Model Armor Eingabeinhalte mit der Regel abgleicht:

  • Teilübereinstimmung (MATCHING_SCOPE_PARTIAL_MATCH, Standard):
    • Wörterbuchregeln: Eine Übereinstimmung liegt vor, wenn ein Wort oder eine Wortgruppe im Wörterbuch mit einem Teilstring im Eingabeinhalt übereinstimmt, vorbehaltlich der Regeln für Zeichenbegrenzungen im Wörterbuch. Beispiel: Der Wörterbuchbegriff ignore empty rows stimmt mit ignore empty rows, ignore EMPTY-rows und Please ignore empty rows and summarize this table überein, aber nicht mit ignore rows oder ignore the empty rows.
    • Regeln für reguläre Ausdrücke: Es wird eine Übereinstimmung gefunden, wenn ein beliebiger Teilstring im Eingabeinhalt mit dem Muster des regulären Ausdrucks übereinstimmt.
  • Vollständige Übereinstimmung (MATCHING_SCOPE_FULL_MATCH):
    • Wörterbuchregeln: Es wird nur eine Übereinstimmung gefunden, wenn der Wörterbucheintrag den gesamten Eingabeinhalt abdeckt. Beispiel: Der Wörterbuchbegriff ignore empty rows stimmt mit ignore empty rows und ignore EMPTY-rows überein, aber nicht mit please ignore empty rows oder ignore rows.
    • Regeln für reguläre Ausdrücke: Eine Übereinstimmung erfolgt nur, wenn das Muster des regulären Ausdrucks mit dem gesamten Inhalt der Eingabe übereinstimmt.

Ü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 zur Erkennung von Prompt Injection und Jailbreaking (PROMPT_INJECTION_AND_JAILBREAK) oder ein Filter für die verantwortungsbewusste Anwendung von KI (RESPONSIBLE_AI) eine potenzielle Übereinstimmung erkennt:

  • 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, wird matchState von Model Armor überschrieben und für den gesamten unterstützten Filtertyp (einschließlich aller Kategorien für verantwortungsbewusste Anwendung von KI für RESPONSIBLE_AI) auf NO_MATCH_FOUND festgelegt. Einzelne Formulierungen oder Bereiche in der Eingabe werden nicht ausgeschlossen. Wenn durch keine anderen aktiven Filter ein Verstoß erkannt wird, gibt filterMatchState den Wert NO_MATCH_FOUND zurück. Model Armor protokolliert keinen Indikator in Cloud Logging und fügt kein Signal in die Bereinigungsantwort ein, wenn eine Ausschlussregel den Filter matchState überschreibt.
  • Regel stimmt nicht mit der vollständigen Eingabe (MATCHING_SCOPE_FULL_MATCH) überein: Wenn die Eingabe über den konfigurierten Begriff oder das konfigurierte Muster hinaus zusätzlichen Text enthält, stimmt die Regel nicht überein und der Filter behält MATCH_FOUND bei.
  • Eingabe überschreitet 0,5 MB: Ausschlussregeln werden nur für die ersten 0,5 MB des Eingabetexts ausgewertet. Wenn eine Eingabe 0,5 MB überschreitet und ein Filter eine Übereinstimmung außerhalb des ersten gescannten Teils erkennt, gibt der Filter EXECUTION_SKIPPED zurück. Weitere Informationen zu messageItems-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.

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. Legen Sie für die Erkennung von Prompt Injection und Jailbreaking (PROMPT_INJECTION_AND_JAILBREAK) filterEnforcement in piAndJailbreakFilterSettings auf ENABLED fest. Wenn Sie Sicherheitsfilter für verantwortungsbewusste Anwendung von KI (RESPONSIBLE_AI) aktivieren möchten, müssen Sie mindestens eine Sicherheitskategorie für verantwortungsbewusste Anwendung von KI in raiSettings.raiFilters konfigurieren.
  • Model Armor unterstützt keine Ausschlussregeln in Streaming-APIs oder Mindesteinstellungen.
  • Model Armor bewertet Ausschlussregeln anhand von Roheingabetext, bevor Texttransformationen wie Anonymisierung 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 Formulierungen oder Muster für reguläre Ausdrücke hinzu.
  • Ausschlussregeln unterstützen nicht-lateinische Sprachen und UTF-8-Mehrbytezeichen nur eingeschränkt. Insbesondere bei Scripts, in denen kombinierende Zeichen verwendet werden (z. B. indische Scripts), oder bei Scripts ohne Leerzeichen zwischen Wörtern (z. B. Chinesisch und Japanisch) stimmen Wörterbuchregeln (wordList) möglicherweise nicht wie erwartet überein. Regeln für den vollständigen Abgleich (MATCHING_SCOPE_FULL_MATCH) stimmen nicht mit Eingaben überein, die UTF-8-Zeichen mit mehreren Byte enthalten. Wenn Sie Inhalte in nicht lateinischen Schriftsystemen oder Eingaben mit Mehrbytezeichen ausschließen möchten, verwenden Sie Regeln für reguläre Ausdrücke (regex) mit MATCHING_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 filterRuleSettings-Objekt in filterConfig in eine 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 und zwei Ausschlussregeln mit teilweisem Abgleich (MATCHING_SCOPE_PARTIAL_MATCH) konfiguriert:

  • Erkennung von Prompt Injection und Jailbreaking  (PROMPT_INJECTION_AND_JAILBREAK): Hier wird eine Wörterbuchregel verwendet, um Eingaben , die bestimmte Formulierungen wie ignore case when sorting this list oder ignore empty rows enthalten, von der Erkennung von Prompt Injection und Jailbreaking auszuschließen.
  • Verantwortungsbewusste Anwendung von KI (RESPONSIBLE_AI): Verwendet eine Regel für reguläre Ausdrücke, um Eingaben, die einem angegebenen Muster entsprechen, z. B. (?i)kill process [0-9]+, aus Sicherheitserkennungen für die verantwortungsbewusste Anwendung von KI 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_1 und EXCLUDED_PHRASE_2: die Wörter oder Wortgruppen im Wörterbuch, die von der Erkennung von Prompt Injection und Jailbreaking ausgeschlossen werden sollen, z. B. ignore case when sorting this list und ignore empty rows.
  • EXCLUDED_REGEX_PATTERN: Das Muster des regulären Ausdrucks, das von der verantwortungsbewussten KI-Sicherheitserkennung ausgeschlossen werden soll, z. B. (?i)kill process [0-9]+.
  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • LOCATION: der Speicherort der Vorlage.
  • TEMPLATE_ID: die ID der Vorlage.

Dieser Befehl gibt eine Antwort in etwa 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 mit updateMask auf filterConfig.filterRuleSettings festgelegt. Da das Feld filterRuleSettings durch das Update vollständig ersetzt wird, müssen Sie alle Regeln, die Sie beibehalten möchten, zusammen mit Ihren Änderungen einfügen.

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_1 und EXCLUDED_PHRASE_2: die Wörter oder Wortgruppen im Wörterbuch, die von der Erkennung von Prompt Injection und Jailbreaking ausgeschlossen werden sollen, z. B. ignore case when sorting this list und ignore 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 Speicherort der Vorlage.
  • TEMPLATE_ID: die ID der Vorlage.

Beispiele für Ausschlussmuster für reguläre Ausdrücke

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 Falschmeldungen ausschließt, ohne echte Sicherheits- oder Schutzverletzungen zu ignorieren. Wenn Sie Muster für reguläre Ausdrücke in JSON-Anfragetexten ("pattern") übergeben, maskieren Sie jeden umgekehrten Schrägstrich mit einem zweiten umgekehrten Schrägstrich (verwenden Sie 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 bei bösartigen Prompt-Injections als auch bei legitimen Anweisungen für die E-Mail-Triage, die Datenformatierung, die Fehlerbehandlung oder die Systemkonfiguration vor. Um zu vermeiden, dass breite Kategorien von Prompts ausgeschlossen werden, kombinieren Sie Wortgrenzen (\\b), nicht erfassende Gruppen ((?:...)) und das Flag für die Groß-/Kleinschreibung ((?i)) mit MATCHING_SCOPE_PARTIAL_MATCH, um Ihren regulären Ausdruck an bestimmte operative Ziel-Substantive zu verankern.

Die folgende Tabelle enthält Beispiele für reguläre Ausdrücke für Teilübereinstimmungen (mit JSON-escapten Backslashes) und Beispielprompts für häufige Falsch-Positiv-Szenarien für Prompt-Injection und Jailbreak.

Anweisungskategorie Triggerbegriffe Szenarien mit falsch positiven Ergebnissen Beispiel für ein reguläres Ausdrucksmuster für Teilübereinstimmungen Beispielprompt
Triage und Filterung von Inhalten 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 zur Systemverwaltung und gängige Redewendungen enthalten oft Wörter, die sich mit den Sicherheitskategorien für die verantwortungsbewusste Anwendung von KI überschneiden. Um falsch positive Ergebnisse bei größeren Prompts oder Antworten zu vermeiden, 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 Ausdrücke für Teilübereinstimmungen (mit JSON-escapten Backslashes) und Beispielprompts für häufige Falsch-positiv-Szenarien im Bereich der verantwortungsbewussten Anwendung von KI.

Risikokategorie Triggerbegriffe Szenarien mit falsch positiven Ergebnissen Beispiel für ein reguläres Ausdrucksmuster für Teilübereinstimmungen 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 bei Domainbegriffen Sich überschneidende Zeichen-Substrings Fachbegriffe aus den Bereichen Wissenschaft, 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, Unterhaltungssprache 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.

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 schwächen:

  • Regeln auf bestimmte Kontexte eingrenzen: Vermeiden Sie es, einzelne Verben oder allgemeine Begriffe wie ignore, kill oder abort auszuschließen oder uneingeschränkte Platzhalter wie .*ignore.* zu verwenden. Da MATCHING_SCOPE_PARTIAL_MATCH die matchState bis NO_MATCH_FOUND für den gesamten Filter überschreibt, wenn eine Teilzeichenfolge übereinstimmt, können zu weit gefasste Regeln echte Verstöße an anderer Stelle im selben Prompt oder in derselben Antwort verdecken. Kombinieren Sie Triggerverben immer mit bestimmten Ziel-Substantiven (z. B. ignore case when sorting this list oder (?i)kill process [0-9]+).
  • Wortgrenzen verwenden und Muster zusammenfassen: Verwenden Sie in Regeln für reguläre Ausdrücke Wortgrenzen (\b), um versehentliche Teilstringübereinstimmungen in nicht verwandten Wörtern zu verhindern. Fassen Sie ähnliche Begriffe in einem einzelnen regulären Ausdruck zusammen, indem Sie nicht erfassende Gruppen ((?:...)) und Alternation (|) verwenden, um das Systemlimit von 10 Regeln pro Regelsatz nicht zu überschreiten.
  • MATCHING_SCOPE_FULL_MATCH für vorhersehbare Eingaben bevorzugen: Wenn Sie vordefinierte UI-Aufforderungen, vorgefertigte Befehle oder automatisierte Test-Payloads ausschließen, legen Sie matchingScope auf MATCHING_SCOPE_FULL_MATCH fest (oder verankern Sie reguläre Ausdrücke mit ^ und $). Durch die Bereichseingrenzung auf vollständige Übereinstimmungen wird verhindert, dass Nutzer schädliche Anweisungen an einen ausgeschlossenen Ausdruck anhängen, um die Erkennung zu umgehen.
  • Regeln für rohen, nicht transformierten Text schreiben: Model Armor wertet Ausschlussregeln vor der Anonymisierung oder Übersetzung aus. Achten Sie darauf, dass Ihre Muster dem Originalformat vor der Anonymisierung entsprechen, und fügen Sie für jede Sprache, die Ihre Anwendung unterstützt, sprachspezifische Formulierungen oder reguläre Ausdrucksmuster hinzu.
  • Temporäre Regeln nach Filter-Upgrades überprüfen und deaktivieren: Wenn Sie eine Vorlage auf eine neuere Filterversion aktualisieren, sollten Sie Ihre Testläufe für Falschmeldungen noch einmal ausführen und Ausschlussregeln entfernen, die durch die aktualisierten Erkennungsmodelle behoben werden.

Nächste Schritte