Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Die Richtlinie „SanitizeModelResponse“ schützt KI-Clients vor schädlichen oder anstößigen Inhalten, indem Antworten von generativen KI-Modellen bereinigt werden. In der Richtlinie wird Model Armor verwendet, um Modellantworten auf schädliche oder anstößige Inhalte zu prüfen und so einen nativen Schutz für KI-Clients und ‑Arbeitslasten mit Apigee herzustellen. Model Armor ist ein Dienst von Google Cloud , der KI-Sicherheitsmaßnahmen bietet, um die Risiken zu minimieren, die mit Large Language Models (LLMs) verbunden sind.
Diese Richtlinie wird in Verbindung mit der Richtlinie „SanitizeUserPrompt“ verwendet.
Diese Richtlinie ist eine erweiterbare Richtlinie, deren Verwendung je nach Apigee-Lizenz Auswirkungen auf die Kosten oder die Nutzung haben kann. Informationen zu Richtlinientypen und Auswirkungen auf die Nutzung finden Sie unter Richtlinientypen.
Hinweis
Bevor Sie die Richtlinie „SanitizeModelResponse“ verwenden können, müssen Sie die folgenden Aufgaben ausführen:
- Erstellen Sie eine Model Armor-Vorlage. Dieser Schritt muss abgeschlossen sein, bevor Sie eine Richtlinie „SanitizeModelResponse“ erstellen.
- Legen Sie den API-Endpunkt für den Model Armor-Dienst fest.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Dienstkonto zuzuweisen, mit dem Sie Apigee-Proxys bereitstellen, um die Berechtigungen zu erhalten, die Sie zum Anwenden und Verwenden der Richtlinie „SanitizeModelResponse“ benötigen:
- Model Armor User (
roles/modelarmor.user) - Model Armor Viewer (
roles/modelarmor.viewer)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
APIs aktivieren
Aktivieren Sie die Model Armor APIs, falls sie noch nicht aktiviert sind.
Erforderliche Rollen zum Aktivieren von APIs
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
Element <SanitizeModelResponse>
Definiert eine Richtlinie „SanitizeModelResponse“.
| Standardwert | Siehe Tab Standardrichtlinie unten. |
| Erforderlich? | Erforderlich |
| Typ | Komplexes Objekt |
| Übergeordnetes Element | – |
| Untergeordnete Elemente |
<DisplayName><IgnoreUnresolvedVariables><ModelArmor><UserPromptSource><LLMResponseSource><FunctionCallSource><ContinuousScan> |
Das Element <SanitizeModelResponse> verwendet die folgende Syntax:
Syntax
<SanitizeModelResponse async="false" continueOnError="false" enabled="true" name="sanitize-response">
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<DisplayName>sanitize-response-sample</DisplayName>
<ModelArmor>
<TemplateName>projects/{project}/locations/{location}/templates/{template-name}</TemplateName>
</ModelArmor>
<UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content)}</UserPromptSource>
<LLMResponseSource>{jsonPath('$.candidates[-1].content.parts',response.content)}</LLMResponseSource>
<FunctionCallSource>{jsonPath('$.candidates[-1].content.parts[-1].functionCall.args',response.content)}</FunctionCallSource>
<ContinuousScan>false</ContinuousScan>
</SanitizeModelResponse>Standardrichtlinie
Das folgende Beispiel zeigt die Standardeinstellungen, die gelten, wenn Sie Ihrem Anfrageablauf in der Apigee-Benutzeroberfläche eine Richtlinie „SanitizeModelResponse“ hinzufügen:
<SanitizeModelResponse async="false" continueOnError="false" enabled="true" name="sanitize-response">
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<DisplayName>sanitize-response-sample</DisplayName>
<ModelArmor>
<TemplateName>projects/{project}/locations/{location}/templates/{template-name}</TemplateName>
</ModelArmor>
<UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content)}</UserPromptSource>
<LLMResponseSource>{jsonPath('$.candidates[-1].content.parts',response.content)}</LLMResponseSource>
<FunctionCallSource>{jsonPath('$.candidates[-1].content.parts[-1].functionCall.args',response.content)}</FunctionCallSource>
</SanitizeModelResponse>Wenn Sie eine neue Richtlinie „SanitizeModelResponse“ über die Apigee-Benutzeroberfläche einfügen, enthält die Vorlage Stubs für alle möglichen Vorgänge. Informationen zu den erforderlichen Elementen finden Sie unten.
Dieses Element hat folgende Attribute, die allen Richtlinien gemeinsam sind:
| Attribut | Standard | Erforderlich? | Beschreibung |
|---|---|---|---|
name |
- | Erforderlich |
Der interne Name der Richtlinie. Der Wert des Attributs Optional können Sie das Element |
continueOnError |
false | Optional | Legen Sie false fest, um einen Fehler zurückzugeben, wenn eine Richtlinie fehlschlägt. Dies ist für die meisten Richtlinien das erwartete Verhalten. Legen Sie true fest, damit die Ablaufausführung auch nach dem Fehlschlagen einer Richtlinie fortgesetzt wird. Weitere Informationen:
|
enabled |
wahr | Optional | Setzen Sie den Wert auf true, um die Richtlinie zu erzwingen. Legen Sie false fest, um die Richtlinie zu deaktivieren. Die Richtlinie wird nicht durchgesetzt, selbst wenn sie mit einem Ablauf verknüpft ist. |
async |
false | Verworfen | Dieses Attribut wurde verworfen. |
Die folgende Tabelle enthält eine allgemeine Beschreibung der untergeordneten Elemente von <SanitizeModelResponse>:
| Untergeordnetes Element | Erforderlich? | Beschreibung |
|---|---|---|
<DisplayName> |
Optional | Der Name der Richtlinie. |
<IgnoreUnresolvedVariables> |
Optional | Gibt an, ob die Verarbeitung beendet wird, wenn die für den Vorlagennamen oder die Model Armor-Nutzlast verwendete Variable nicht aufgelöst werden kann. |
<ModelArmor> |
Erforderlich | Enthält die erforderlichen Informationen zum Angeben der Model Armor-Vorlage. |
<UserPromptSource> |
Optional | Der Speicherort der Nutzlast, aus der der Text für den Nutzer-Prompt extrahiert werden soll. Die Richtlinie sendet diesen Text als Kontext für die Bereinigung der Antwort an Model Armor. Wenn Sie dieses Element weglassen, sendet die Richtlinie nur die LLM-Antwort zur Bereinigung an Model Armor. Die Richtlinie wird dann erfolgreich bereitgestellt und ausgeführt. Unterstützt nur String-Textwerte.
Dieses Feld unterstützt die Apigee-Syntax für Nachrichtenvorlagen, einschließlich der Verwendung von Variablen oder JSON-Pfadfunktionen. Beispiel: {jsonpath('$.contents[-1].parts[-1].text',request.content,false)} |
<LLMResponseSource> |
Optional | Der Speicherort der Nutzlast, aus der der LLM-Antworttext extrahiert werden soll. Wenn dieser Wert weggelassen wird, wird der Standard-JSON-Pfad generateContent der Agent Platform angewendet: {jsonPath('$.candidates[-1].content.parts',response.content)}. Es werden nur String-Textwerte unterstützt.
Dieses Feld unterstützt die Apigee-Syntax für Nachrichtenvorlagen, einschließlich der Verwendung von Variablen oder JSON-Pfadfunktionen. Beispiel: {jsonpath('$.input.prompt.text',request.content,false)} |
<FunctionCallSource> |
Optional | Der Speicherort der Argumente für den Funktionsaufruf, die aus den Modellantworten extrahiert werden sollen. Die Richtlinie verwendet dieses Element als Fallback, wenn <LLMResponseSource> bei Funktionsaufrufen leer zurückgegeben wird.
Standardwert: |
<ContinuousScan> |
Optional | Gibt an, ob die gesamte Streamingantwort (SSE) geprüft werden soll. Jedes Ereignis wird erst an den Client gesendet, nachdem es von Model Armor geprüft wurde. Gilt nur, wenn die Richtlinie in einer SSE- Standardwert: |
Streaming-Antworten von Server-Sent Events (SSE) bereinigen
Verwenden Sie in einer SSE-EventFlow <ContinuousScan>, um eine von zwei Optionen auszuwählen: Jedes Ereignis separat prüfen (false, Standard) oder den gesamten Stream mit der Streaming-Bereinigung von Model Armor (true) prüfen. Mit true ist die vollständige Antwort in der Regel schneller fertig, da die Richtlinie den Stream über eine Verbindung prüft, während das Modell noch generiert, anstatt für jedes Ereignis eine separate Anfrage zu stellen. Die Zeit bis zum ersten Token kann jedoch länger sein. Informationen zum Hinzufügen der Richtlinie zu einem EventFlow finden Sie unter Apigee Model Armor-Richtlinie in einem EventFlow verwenden.
In der folgenden Tabelle werden die beiden Optionen verglichen:
| Verhalten | false (Standard): jedes Ereignis separat |
true: ganzer Stream |
|---|---|---|
| So wird Text geprüft | Jedes Ereignis einzeln, ohne den Text früherer Ereignisse. | Der gesamte Stream, wobei der Text früherer Ereignisse als Kontext dient. |
| Wenn der Client ein Ereignis empfängt | Nach der Prüfung des Ereignisses. | Nachdem Model Armor sie geprüft hat. |
| Model Armor-Anfragen | Einmal pro Ereignis. | Eine pro Antwort. |
| Tokenlimit | Pro Anfrage. | Keine Begrenzung der Gesamtzahl der Tokens in einer Antwort. |
Das Element <ContinuousScan> ist nur in der Richtlinie „SanitizeModelResponse“ vorhanden, nicht in der Richtlinie „SanitizeUserPrompt“.
Kontinuierlichen Scan konfigurieren
Legen Sie <ContinuousScan>true</ContinuousScan> fest und verweisen Sie mit <LLMResponseSource> auf den Text im aktuellen Ereignis, response.event.current.data:
<SanitizeModelResponse async="false" continueOnError="false" enabled="true" name="SMR-ContinuousScan"> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <DisplayName>SMR-ContinuousScan</DisplayName> <ModelArmor> <TemplateName>projects/{project}/locations/{location}/templates/{template-name}</TemplateName> </ModelArmor> <LLMResponseSource>{jsonPath('$.candidates[-1].content.parts[-1].text',response.event.current.data,true)}</LLMResponseSource> <ContinuousScan>true</ContinuousScan> </SanitizeModelResponse>
Verwenden Sie den <LLMResponseSource>-Ausdruck, der dem Streamingformat Ihres Modells entspricht:
| Streaming format | <LLMResponseSource> |
|---|---|
Gemini (streamGenerateContent?alt=sse) |
{jsonPath('$.candidates[-1].content.parts[-1].text',response.event.current.data,true)} |
| OpenAI-kompatible Chat-Vervollständigungen | {jsonPath('$.choices[-1].delta.content',response.event.current.data,true)} |
| Anthropic Claude | {jsonPath('$.delta.text',response.event.current.data,true)} |
Übereinstimmungen und Fehler
Wenn <ContinuousScan> auf true gesetzt ist, sind Fehler entweder vorübergehend oder irreversibel:
| Typ | Beispiele | Handhabung |
|---|---|---|
| Transient | Eine unterbrochene Verbindung zu Model Armor oder Model Armor ist vorübergehend nicht verfügbar. | Wiederholt. Apigee stellt die Verbindung wieder her und prüft den noch nicht zugestellten Text noch einmal, sodass kein Ereignis übersprungen oder ungeprüft zugestellt wird. Dies geschieht bis zu zweimal pro Antwort, unabhängig von continueOnError. Wenn der Fehler weiterhin auftritt, wird er zu einem endgültigen Fehler. |
| Terminal | Ein Filtertreffer, ein Authentifizierungs- oder Berechtigungsfehler, ein überschrittenes Model Armor-Kontingent oder keine Antwort von Model Armor innerhalb des Zeitlimits von 60 Sekunden. | Nicht wiederholt. Die Prüfung endet und continueOnError bestimmt, was der Client erhält, wie in der folgenden Tabelle beschrieben. |
Wenn <ContinuousScan> auf true gesetzt ist, liefert die Richtlinie nicht den von Sensitive Data Protection (SDP) de-identifizierten (unkenntlich gemachten) Text von Model Armor. Apigee gibt Ereignisse unverändert frei und behandelt eine De-Identifikationsübereinstimmung wie jede andere Übereinstimmung.
Bei einem Terminalfehler bestimmt das Attribut continueOnError, was der Client empfängt:
continueOnError |
Was der Kunde erhält |
|---|---|
false (Standard) |
Der Client empfängt die Ereignisse, die die Prüfung bestanden haben, und dann ein SSE-Ereignis mit dem Fehler, z. B. steps.sanitize.model.response.FilterMatched, steps.sanitize.modelarmor.ModelArmorAPIFailed oder steps.sanitize.modelarmor.AuthenticationFailure. Der Stream wird dann beendet. Der Client empfängt keinen ungeprüften oder übereinstimmenden Text. |
true |
Der Client erhält die vollständige Antwort, einschließlich des übereinstimmenden Texts und aller nachfolgenden Inhalte. Terminalfehler lösen keinen Fehler aus und der Rest der Antwort wird ungeprüft weitergeleitet. Die Richtlinie setzt SanitizeModelResponse.POLICY_NAME.failed auf true, sodass ein späterer Schritt im EventFlow darauf reagieren kann. |
Wenn <ContinuousScan> auf false gesetzt ist, ist jedes Ereignis eine separate Anfrage und es werden keine Wiederverbindungsversuche unternommen. Bei continueOnError="true" wirkt sich eine Übereinstimmung nur auf dieses Ereignis aus und die Richtlinie prüft weiterhin spätere Ereignisse.
Kontingente und Limits
- Bei
<ContinuousScan>true</ContinuousScan>wird eine gesamte gestreamte Antwort als eine Anfrage auf das Model Armor-Kontingent Ihres Projekts angerechnet, plus eine Anfrage für jede erneute Verbindung. Beifalseist jedes SSE-Ereignis eine separate Anfrage. - Bei
<ContinuousScan>true</ContinuousScan>gibt es keine Begrenzung für die Gesamtzahl der Tokens in einer Antwort. Andernfalls unterliegt jede Anfrage den Tokenlimits von Model Armor.
Verweis auf untergeordnetes Element
In diesem Abschnitt werden die untergeordneten Elemente von <SanitizeModelResponse> beschrieben.
<DisplayName>
Wird zusätzlich zum Attribut name verwendet, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen, natürlicher klingenden Namen zu versehen.
Das Element <DisplayName> ist für alle Richtlinien gleich.
| Standardwert | – |
| Erforderlich? | Optional. Wenn Sie <DisplayName> weglassen, wird der Wert des Attributs name der Richtlinie verwendet. |
| Typ | String |
| Übergeordnetes Element | <PolicyElement> |
| Untergeordnete Elemente | Keine |
Das <DisplayName>-Element verwendet die folgende Syntax:
Syntax
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Beispiel
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
Das <DisplayName>-Element hat keine Attribute oder untergeordneten Elemente.
<IgnoreUnresolvedVariables>
Bestimmt, ob die Verarbeitung beendet wird, wenn eine Variable nicht aufgelöst werden kann. Legen Sie sie auf true fest, um nicht aufgelöste Variablen zu ignorieren und die Verarbeitung fortzusetzen.
| Standardwert | False |
| Erforderlich? | Optional |
| Typ | Boolescher Wert |
| Übergeordnetes Element |
<SanitizeModelResponse>
|
| Untergeordnete Elemente | Keine |
<ModelArmor>
Enthält die Konfiguration der Model Armor-Vorlage. Das untergeordnete Element <TemplateName> gibt an, welche Model Armor-Vorlage zum Bereinigen der LLM-Antwort verwendet wird.
| Standardwert | – |
| Erforderlich? | Erforderlich |
| Typ | Komplexes Objekt |
| Übergeordnetes Element |
<SanitizeModelResponse>
|
| Untergeordnete Elemente |
<TemplateName>
|
Das Element <ModelArmor> verwendet die folgende Syntax:
<ModelArmor>
<TemplateName>projects/{project}/locations/{location}/templates/{template-name}</TemplateName>
</ModelArmor><TemplateName>
Die Model Armor-Vorlage.
| Standardwert | – |
| Erforderlich? | Erforderlich |
| Typ | String |
| Übergeordnetes Element |
<ModelArmor>
|
| Untergeordnete Elemente | Keine |
Das Element <TemplateName> verwendet die folgende Syntax:
Syntax
<ModelArmor>
<TemplateName>projects/{project}/locations/{location}/templates/{template-name}</TemplateName>
</ModelArmor>Beispiel
In diesem Beispiel werden Apigee-Ablaufvariablen verwendet, um die erforderlichen Informationen automatisch einzufügen.
<ModelArmor> <TemplateName>projects/{organization.name}/locations/{system.region.name}/templates/{id}</TemplateName> </ModelArmor>
<UserPromptSource>
Der Speicherort der Nutzlast, aus der der Text für den Nutzer-Prompt extrahiert werden soll. Wenn Sie dieses Element angeben, sendet die Richtlinie den Nutzer-Prompt zusammen mit der Modellantwort an Model Armor, um eine kontextsensitive Bereinigung durchzuführen. Wenn Sie dieses Element weglassen, bereinigt die Richtlinie nur die Modellantwort. Die Richtlinie wird dann erfolgreich bereitgestellt und ausgeführt. Unterstützt nur String-Textwerte.
Dieses Feld unterstützt die Apigee-Syntax für Nachrichtenvorlagen, einschließlich der Verwendung von Variablen oder JSON-Pfadfunktionen. Beispiel:
{jsonpath('$.input.prompt.text',request.content,false)}
| Standardwert | – |
| Erforderlich? | Optional |
| Typ | String |
| Übergeordnetes Element |
<SanitizeModelResponse>
|
| Untergeordnete Elemente | Keine |
<LLMResponseSource>
Der Speicherort der Nutzlast, aus der die LLM-Antwort extrahiert werden soll. Es werden nur String-Textwerte unterstützt.
Dieses Feld unterstützt die Apigee-Syntax für Nachrichtenvorlagen, einschließlich der Verwendung von Variablen oder JSON-Pfadfunktionen. Beispiel:
{jsonpath('$.input.prompt.text',request.content,false)}
| Standardwert | {jsonPath('$.candidates[-1].content.parts',response.content)} |
| Erforderlich? | Optional |
| Typ | String |
| Übergeordnetes Element |
<SanitizeModelResponse>
|
| Untergeordnete Elemente | Keine |
<FunctionCallSource>
Der Speicherort der Argumente des Funktionsaufrufs, die aus der Modellantwort extrahiert werden sollen. Die Richtlinie verwendet dieses Element als Fallback, wenn <LLMResponseSource> leer ist. Das ist der Fall, wenn das Modell einen Funktionsaufruf anstelle von Textinhalt zurückgibt.
Dieses Feld unterstützt die Syntax für Nachrichtenvorlagen, einschließlich JSON-Pfadfunktionen.
| Standardwert | {jsonPath('$.candidates[-1].content.parts[-1].functionCall.args',response.content)} |
| Erforderlich? | Optional |
| Typ | String |
| Übergeordnetes Element |
<SanitizeModelResponse>
|
| Untergeordnete Elemente | Keine |
<ContinuousScan>
Legen Sie true fest, um die gesamte Streamingantwort (SSE) als einen Stream mit der Streaming-Bereinigung von Model Armor zu prüfen. Die Richtlinie prüft jedes Ereignis zusammen mit dem Text aller früheren Ereignisse. Der Client empfängt jedes Ereignis vollständig und unverändert, nachdem es von Model Armor geprüft wurde. Die Richtlinie liefert nicht den von Sensitive Data Protection (SDP) de-identifizierten (unkenntlich gemachten) Text von Model Armor.
Wenn false oder weggelassen, prüft die Richtlinie jedes Ereignis separat.
Das Element gilt nur, wenn die Richtlinie in einer SSE-EventFlow ausgeführt wird, und hat ansonsten keine Auswirkungen. Weitere Informationen finden Sie unter Streaming-Antworten von Server-Sent Events (SSE) bereinigen.
| Standardwert | False |
| Erforderlich? | Optional |
| Typ | Boolescher Wert |
| Übergeordnetes Element |
<SanitizeModelResponse>
|
| Untergeordnete Elemente | Keine |
Das Element <ContinuousScan> verwendet die folgende Syntax:
<ContinuousScan>true</ContinuousScan>
Ablaufvariablen
Ablaufvariablen können verwendet werden, um das dynamische Laufzeitverhalten für Richtlinien und Abläufe auf der Grundlage von HTTP-Headern, Nachrichteninhalten oder dem Kontext zu konfigurieren, der im Ablauf verfügbar ist. Weitere Informationen zu Ablaufvariablen finden Sie in der Referenz zu Ablaufvariablen.
Diese Richtlinie stellt während der Ausführung die folgenden schreibgeschützten Ablaufvariablen bereit. Sie können diese Ablaufvariablen mit der Richtlinie „DataCapture“ verwenden, um benutzerdefinierte Analyseberichte zu erstellen. Weitere Informationen finden Sie unter Kundendaten mit der Data Capture-Richtlinie erfassen.
| Variablenname | Beschreibung |
|---|---|
SanitizeModelResponse.POLICY_NAME.templateUsed |
Gibt an, welche Model Armor-Vorlage verwendet wird. Beispiel: projects/myproject/locations/us-west1/templates/mytemplate |
SanitizeModelResponse.POLICY_NAME.userPrompt |
Gibt den Prompt-Inhalt für den Bereinigungsaufruf von Model Armor an. |
SanitizeModelResponse.POLICY_NAME.modelResponse |
Gibt den Inhalt der LLM-Antwort für den Bereinigungsaufruf von Model Armor an. |
SanitizeModelResponse.POLICY_NAME.responseFromModelArmor |
Gibt die JSON-Antwort von Model Armor an. Wenn <ContinuousScan> auf true gesetzt ist, enthält es die letzte Antwort. |
SanitizeModelResponse.POLICY_NAME.filterMatchState |
Gibt an, ob mit dem Filter Ergebnisse gefunden wurden. Gültige Werte sind MATCH_FOUND und NO_MATCH_FOUND. |
SanitizeModelResponse.POLICY_NAME.invocationResult |
Gibt das Ergebnis des Aufrufs an, unabhängig davon, ob Ergebnisse gefunden wurden. Gültige Werte:
|
SanitizeModelResponse.POLICY_NAME.raiFilterResult.executionState |
Gibt das Ergebnis der Ausführung des RAI-Filters an. Gültige Werte sind EXECUTION_SUCCESS und EXECUTION_SKIPPED. |
SanitizeModelResponse.POLICY_NAME.raiFilterResult.matchState |
Gibt an, ob mit dem RAI-Filter Ergebnisse gefunden wurden. Gültige Werte sind MATCH_FOUND und NO_MATCH_FOUND. |
SanitizeModelResponse.POLICY_NAME.sdpFilterResult.inspectResult.executionState |
Gibt das Ergebnis der Ausführung des SDP-Filters zur Prüfung an. Gültige Werte sind EXECUTION_SUCCESS und EXECUTION_SKIPPED. |
SanitizeModelResponse.POLICY_NAME.sdpFilterResult.inspectResult.matchState |
Gibt an, ob mit dem SDP-Filter zur Prüfung Ergebnisse gefunden wurden. Gültige Werte sind MATCH_FOUND und NO_MATCH_FOUND. |
SanitizeModelResponse.POLICY_NAME.sdpFilterResult.deidentifyResult.executionState |
Gibt das Ergebnis der Ausführung des SDP-Filters zur De-Identifikation an. Gültige Werte sind EXECUTION_SUCCESS und EXECUTION_SKIPPED. |
SanitizeModelResponse.POLICY_NAME.sdpFilterResult.deidentifyResult.matchState |
Gibt an, ob mit dem SDP-Filter zur De-Identifikation Ergebnisse gefunden wurden. Gültige Werte sind MATCH_FOUND und NO_MATCH_FOUND. |
SanitizeModelResponse.POLICY_NAME.piAndJailbreakFilterResult.executionState |
Gibt das Ergebnis der Ausführung des Prompt-Injection- und Jailbreaking-Filters an. Gültige Werte sind EXECUTION_SUCCESS und EXECUTION_SKIPPED. |
SanitizeModelResponse.POLICY_NAME.piAndJailbreakFilterResult.matchState |
Gibt an, ob mit dem Prompt-Injection- und Jailbreaking-Filter Ergebnisse gefunden wurden. Gültige Werte sind MATCH_FOUND und NO_MATCH_FOUND. |
SanitizeModelResponse.POLICY_NAME.csamFilterFilterResult.executionState |
Gibt den Status der Ausführung des Filters für Darstellungen des sexuellen Missbrauchs von Kindern an. Gültige Werte sind EXECUTION_SUCCESS und EXECUTION_SKIPPED. |
SanitizeModelResponse.POLICY_NAME.csamFilterFilterResult.matchState |
Gibt an, ob mit dem Filter für Darstellungen des sexuellen Missbrauchs von Kindern Ergebnisse gefunden wurden. Gültige Werte sind MATCH_FOUND und NO_MATCH_FOUND. |
SanitizeModelResponse.POLICY_NAME.maliciousUriFilterResult.executionState |
Gibt den Status Ausführung des Filters für schädliche URIs an. Gültige Werte sind EXECUTION_SUCCESS und EXECUTION_SKIPPED. |
SanitizeModelResponse.POLICY_NAME.maliciousUriFilterResult.matchState |
Gibt an, ob mit dem Filter für schädliche URIs Ergebnisse gefunden wurden. Gültige Werte sind MATCH_FOUND und NO_MATCH_FOUND. |
SanitizeModelResponse.POLICY_NAME.sanitizationMetadata.errorCode |
Benutzerdefinierter überschriebener Fehlercode, falls in der Model Armor-Antwort vorhanden. |
SanitizeModelResponse.POLICY_NAME.sanitizationMetadata.errorMessage |
Benutzerdefinierter überschriebener Fehlercode, falls in der Model Armor-Antwort vorhanden. |
SanitizeModelResponse.POLICY_NAME.csamFilterMatched |
Boolescher Wert, der angibt, ob mit dem Filter für Darstellungen des sexuellen Missbrauchs von Kindern Ergebnisse gefunden wurden. |
SanitizeModelResponse.POLICY_NAME.maliciousURIs |
Angehängte Liste der schädlichen URIs, die vom Filter für schädliche URIs erkannt wurden. |
SanitizeModelResponse.POLICY_NAME.maliciousURIsDetected |
Boolescher Wert, der angibt, ob mit dem Filter für schädliche URIs Ergebnisse gefunden wurden. |
SanitizeModelResponse.POLICY_NAME.matchesFound |
Boolescher Wert, der angibt, ob mit einem der Filter Ergebnisse gefunden wurden. |
SanitizeModelResponse.POLICY_NAME.promptInjectionDetected |
Boolescher Wert, der angibt, ob mit dem Prompt-Injection-Filter Ergebnisse gefunden wurden. |
SanitizeModelResponse.POLICY_NAME.promptInjectionConfidence |
Konfidenzniveau für die Prompt-Injection-Erkennung. |
SanitizeModelResponse.POLICY_NAME.raiMatchesFound |
Boolescher Wert, der angibt, ob mit dem RAI-Filter Ergebnisse gefunden wurden. |
SanitizeModelResponse.POLICY_NAME.requestSentToModelArmor |
Gibt die JSON-Anfrage an, die an Model Armor gesendet wird. Wenn <ContinuousScan> auf true festgelegt ist, enthält es die letzte Anfrage. |
SanitizeModelResponse.POLICY_NAME.sanitizeOperation |
Gibt den Vorgang an, der von der Richtlinie ausgeführt wird. Gültige Werte sind SANITIZE_USER_PROMPT und SANITIZE_MODEL_RESPONSE. |
SanitizeModelResponse.POLICY_NAME.streamReplacements |
Gibt an, wie oft die Richtlinie während der Antwort eine Verbindung zu Model Armor hergestellt hat, wenn <ContinuousScan> auf true gesetzt ist. Wird nur festgelegt, wenn die Richtlinie wieder verbunden wurde. |
SanitizeModelResponse.POLICY_NAME.lastStreamReplacementCause |
Gibt den Fehler an, der die letzte Wiederverbindung verursacht hat, wenn <ContinuousScan> auf true gesetzt ist. Wird nur festgelegt, wenn die Richtlinie wieder verbunden wurde. |
Fehlerreferenz
In diesem Abschnitt werden die zurückgegebenen Fehlercodes und Fehlermeldungen sowie die Fehlervariablen beschrieben, die von Apigee für die Richtlinie <SanitizeModelResponse> festgelegt werden.
Diese Informationen sind wichtig, wenn Sie Regeln zum Umgang mit Fehlern entwickeln. Weitere Informationen finden Sie unter Wissenswertes über Richtlinienfehler und Umgang mit Fehlern.
Laufzeitfehler
| Fehlercode | HTTP-Status | Ursache |
|---|---|---|
steps.sanitize.model.response.FilterMatched |
400 |
Dieser Fehler tritt auf, wenn der Nutzer-Prompt die Vorlagenprüfung von Model Armor nicht besteht. |
steps.sanitize.model.response.SanitizationResponseParsingFailed |
500 |
Dieser Fehler tritt auf, wenn die Model Armor-Antwort nicht geparst werden kann. |
steps.sanitize.model.response.FailedToExtractUserPrompt |
500 |
Dieser Fehler tritt auf, wenn die automatische Extraktion des Nutzer-Prompts für den Standardwert fehlschlägt. |
steps.sanitize.model.response.FailedToExtractLLMResponse |
500 |
Dieser Fehler tritt auf, wenn die automatische Extraktion der Modellantwort für den Standardwert fehlschlägt. |
steps.sanitize.model.response.InternalError |
500 |
Dieser Fehler tritt auf, wenn ein interner Serverfehler vorliegt. |
steps.sanitize.model.response.ModelArmorTemplateNameExtractionFailed |
500 |
Dieser Fehler tritt auf, wenn der Vorlagenname nicht aufgelöst werden kann. |
steps.sanitize.model.response.AuthenticationFailure |
500 |
Dieser Fehler tritt auf, wenn das Dienstkonto keine Berechtigung zum Aufrufen der Model Armor API hat. |
steps.sanitize.model.response.ModelArmorAPIFailed |
500 |
Dieser Fehler tritt auf, wenn die Model Armor API einen Fehler ausgibt. |
steps.sanitize.model.response.ModelArmorCalloutError |
500 |
Dieser Fehler tritt auf, wenn der Model Armor API-Aufruf fehlschlägt. |
steps.sanitize.modelarmor.ServiceUnavailable |
500 |
Dieser Fehler tritt auf, wenn der Model Armor-Dienst nicht verfügbar ist. |
Bereitstellungsfehler
Diese Fehler können auftreten, wenn Sie einen Proxy mit dieser Richtlinie bereitstellen.
| Fehlername | Ursache |
|---|---|
The ModelArmor/TemplateName element is required. |
Tritt auf, wenn das Element <TemplateName> in <ModelArmor> nicht vorhanden ist. |
The TemplateName element value is required. |
Tritt auf, wenn der Wert <TemplateName> leer ist. |
Fehlervariablen
Diese Variablen werden festgelegt, wenn die Richtlinie zur Laufzeit einen Fehler auslöst. Weitere Informationen finden Sie unter Wissenswertes über Richtlinienfehler.
| Variablen | Definition | Beispiel |
|---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME ist der Name des Fehlers, wie in der obigen Tabelle Laufzeitfehler aufgeführt. Der Fehlername ist der letzte Teil des Fehlercodes. | fault.name Matches "UnresolvedVariable" |
SanitizeModelResponse.POLICY_NAME.failed |
POLICY_NAME ist der benutzerdefinierte Name der Richtlinie, die den Fehler ausgegeben hat. | SanitizeModelResponse.sanitize-response.failed = true |
Beispiel für eine Fehlerantwort
{ "fault": { "faultstring": "SanitizeModelResponse[sanitize-response]: unable to resolve variable [variable_name]", "detail": { "errorcode": "steps.sanitizemodelresponse.UnresolvedVariable" } } }
Beispiel für eine Fehlerregel
<FaultRule name="SanitizeModelResponse Faults">
<Step>
<Name>SMR-CustomSetVariableErrorResponse</Name>
<Condition>(fault.name = "SetVariableFailed")</Condition>
</Step>
<Condition>(sanitizemodelresponse.failed = true)</Condition>
</FaultRule>Fehlercodes und Fehlermeldungen für Model Armor-Vorlagen
Model Armor-Vorlagen unterstützen das Überschreiben von Fehlercodes und Fehlermeldungen, die von den API-Anfragen der Richtlinie „SanitizeModelResponse“ ausgegeben werden. Wenn der Nutzer Überschreibungen festlegt, werden die Fehlercodes und Fehlermeldungen von Model Armor in die Ablaufvariablen eingefügt.
Eine Antwort mit Model Armor-Fehlercodes und ‑meldungen könnte beispielsweise so aussehen:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "filterResults": {...}, "sanitizationMetadata": { "errorCode": "890", "errorMessage": "get out" }, "invocationResult": "SUCCESS" } }
Schemas
Jeder Richtlinientyp wird durch ein XML-Schema (.xsd) definiert. Zu Referenzzwecken sind Richtlinienschemas auf GitHub verfügbar.