Vorlagenspezifische Ausschlussregeln konfigurieren

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:

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 ignore empty rows

Übereinstimmungen:

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

Stimmt nicht überein mit:

  • 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 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 ignore empty rows

Übereinstimmungen:

  • ignore empty rows
  • ignore EMPTY-rows

Stimmt nicht überein mit:

  • 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- 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: (?i)kill process [0-9]+

Übereinstimmungen:

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

Stimmt nicht überein mit:

  • kill process abc
  • kill the process 1234
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: (?i)^test_case_[0-9]+$

Übereinstimmungen:

  • test_case_42
  • TEST_CASE_001

Stimmt nicht überein mit:

  • 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 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

  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 Inhaberrolle (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. 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 init

  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 Inhaberrolle (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 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 Johnson stimmt mit sam johnson, Sam, Johnson und Sam (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 jen stimmt 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 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 mit kill process 1234 und Kill 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 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: 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.
  • 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 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: 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.

Ü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 ein MATCH_FOUND- oder EXECUTION_SKIPPED-Filterergebnis und setzt matchState für diesen gesamten unterstützten Filtertyp (einschließlich aller verantwortungsbewussten KI-Sicherheitskategorien für RESPONSIBLE_AI) auf NO_MATCH_FOUND, anstatt einzelne Wortgruppen oder Bereiche innerhalb der Eingabe auszuschließen. In der Bereinigungsantwort ist filterMatchState gleich NO_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 Labels modelarmor.googleapis.com/exclusion_rule_overridden_filters oder modelarmor.googleapis.com/exclusion_rule_skipped_filters. Model Armor protokolliert diese Labels, wenn Ausschlussregeln Filterergebnisse überschreiben oder wenn der executionState eines Filters EXECUTION_SKIPPED ist. 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ält MATCH_FOUND bei.
  • 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_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.

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 sowohl MATCHING_SCOPE_PARTIAL_MATCH (Standard) als auch MATCHING_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 setzt matchState für diesen Filtertyp auf NO_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 setzt matchState für diesen Filtertyp auf NO_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ält MATCH_FOUND bei.
  • Echtzeitmodus (STREAMING_MODE_REALTIME, Standard): Unterstützt MATCHING_SCOPE_PARTIAL_MATCH (Standard) und nicht MATCHING_SCOPE_FULL_MATCH.
    • Teilweise Übereinstimmung (MATCHING_SCOPE_PARTIAL_MATCH): Model Armor wertet jeden verarbeiteten Block unabhängig aus (wird in sanitizationMetadata.streamChunkProcessed zurückgegeben, wenn filterMatchState den Wert NO_MATCH_FOUND hat). Wenn ein Wörterbuchbegriff oder ein regulärer Ausdruck in einem verarbeiteten Block übereinstimmt, überschreibt Model Armor das Filterergebnis und setzt matchState für diesen Block auf NO_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 ein MATCH_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 mit MATCHING_SCOPE_FULL_MATCH enthält und die Anfrage den Echtzeit-Streamingmodus verwendet, lehnt Model Armor die Anfrage mit dem folgenden INVALID_ARGUMENT-Fehler ab: Invalid filter rule settings: FULL_MATCH matching scope is not supported in real-time streaming mode. UsePARTIAL_MATCHorSTREAMING_MODE_BUFFERED`.

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) filterEnforcement in piAndJailbreakFilterSettings auf ENABLED. 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 in raiSettings.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 Sie MATCHING_SCOPE_FULL_MATCH im Echtzeitmodus (STREAMING_MODE_REALTIME, dem Standard-Streamingmodus) verwenden, wird der folgende INVALID_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) 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 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 wie ignore case when sorting this list oder ignore empty rows von 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_1 und EXCLUDED_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 list und ignore 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_1 und EXCLUDED_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 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 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, kill oder abort) auszuschließen oder uneingeschränkte Platzhalter (wie .*ignore.*) zu verwenden. Da MATCHING_SCOPE_PARTIAL_MATCH die matchState für den gesamten Filter auf NO_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 list oder (?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_MATCH für vorhersehbare Eingaben: Wenn Sie vordefinierte UI-Aufforderungen, vordefinierte Befehle oder automatisierte Test-Nutzlasten ausschließen, setzen Sie matchingScope auf MATCHING_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