Verwenden Sie die ApplyGuardrail API in Ihrer Anwendung - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie die ApplyGuardrail API in Ihrer Anwendung

Der Integritätsschutz wird verwendet, um Sicherheitsvorkehrungen für Ihre generativen KI-Anwendungen zu implementieren, die auf Ihre Anwendungsfälle zugeschnitten und auf Ihre verantwortungsvolle KI-Richtlinien abgestimmt sind. Mit dem Integritätsschutz können Sie abgelehnte Themen konfigurieren, schädliche Inhalte filtern und vertrauliche Informationen entfernen.

Sie können die ApplyGuardrail-API verwenden, um jeden Text mit Ihrer vorkonfigurierten Integritätsschutz für Amazon Bedrock zu bewerten, ohne die Basismodelle aufrufen zu müssen.

Zu den Features der ApplyGuardrail-API gehören:

  • Inhaltsvalidierung – Sie können jede beliebige Textein- oder -ausgabe an die ApplyGuardrail-API senden, um sie mit Ihren definierten Themenvermeidungsregeln, Inhaltsfiltern, PII-Detektoren und Wortblockierungslisten zu vergleichen. Sie können Benutzereingaben und FM-generierte Ausgaben unabhängig voneinander auswerten.

  • Flexible Bereitstellung – Sie können die ApplyGuardrail-API an einer beliebigen Stelle in Ihren Anwendungsablauf integrieren, um Daten zu validieren, bevor sie verarbeitet oder dem Benutzer als Ergebnisse zur Verfügung gestellt werden. Wenn Sie beispielsweise eine RAG-Anwendung verwenden, können Sie ab sofort die Benutzereingaben vor dem Abruf auswerten, anstatt bis zur endgültigen Antwortgenerierung warten zu müssen.

  • Entkoppelt von Basismodellen – Die ApplyGuardrail-API ist von den Basismodellen entkoppelt. Sie können den Integritätsschutz ab sofort verwenden, ohne Basismodelle aufzurufen. Sie können die Bewertungsergebnisse verwenden, um das Erlebnis in Ihrer generativen KI-Anwendung nach Ihren Vorstellungen auszulegen.

Rufen Sie Ihren ApplyGuardrail Anwendungsablauf ein

Die Anfrage ermöglicht Kunden, ihre zu schützenden Inhalte mithilfe eines definierten Integritätsschutzes weiterzugeben. Das Quellfeld sollte INPUT auf gesetzt sein, wenn der auszuwertende Inhalt von einem Benutzer stammt (in der Regel der Prompt für das LLM). Die Quelle sollte auf OUTPUT gesetzt sein, wenn der Integritätsschutz für die Modellausgabe durchgesetzt werden soll (in der Regel die LLM-Antwort).

Geben Sie die Leitplanke an, mit der Sie arbeiten möchten ApplyGuardrail

Bei der Verwendung von ApplyGuardrail geben Sie den guardrailIdentifier und die guardrailVersion des Integritätsschutzes an, den Sie verwenden möchten. Sie können die Ablaufverfolgung auch für den Integritätsschutz aktivieren, wodurch Informationen über den Inhalt bereitgestellt werden, den der Integritätsschutz blockiert.

ApplyGuardrail API request
POST /guardrail/{guardrailIdentifier}/version/{guardrailVersion}/apply HTTP/1.1 { "source": "INPUT" | "OUTPUT", "content": [{ "text": { "text": "string", } }, ] }
ApplyGuardrail API response
{ "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "action": "GUARDRAIL_INTERVENED" | "NONE", "output": [ // if guardrail intervened and output is masked we return request in same format // with masking // if guardrail intervened and blocked, output is a single text with canned message // if guardrail did not intervene, output is empty array { "text": "string", }, ], "assessments": [{ "topicPolicy": { "topics": [{ "name": "string", "type": "DENY", "action": "BLOCKED", }] }, "contentPolicy": { "filters": [{ "type": "INSULTS | HATE | SEXUAL | VIOLENCE | MISCONDUCT |PROMPT_ATTACK", "confidence": "NONE" | "LOW" | "MEDIUM" | "HIGH", "filterStrength": "NONE" | "LOW" | "MEDIUM" | "HIGH", "action": "BLOCKED" }] }, "wordPolicy": { "customWords": [{ "match": "string", "action": "BLOCKED" }], "managedWordLists": [{ "match": "string", "type": "PROFANITY", "action": "BLOCKED" }] }, "sensitiveInformationPolicy": { "piiEntities": [{ // for all types see: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GuardrailPiiEntityConfig.html#bedrock-Type-GuardrailPiiEntityConfig-type "type": "ADDRESS" | "AGE" | ..., "match": "string", "action": "BLOCKED" | "ANONYMIZED" }], "regexes": [{ "name": "string", "regex": "string", "match": "string", "action": "BLOCKED" | "ANONYMIZED" }], "contextualGroundingPolicy": { "filters": [{ "type": "GROUNDING | RELEVANCE", "threshold": "double", "score": "double", "action": "BLOCKED | NONE" }] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded":"integer", "total": "integer" } } } }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } ] }

Beispielhafte Anwendungsfälle von ApplyGuardrail

Die Ergebnisse der ApplyGuardrail-Anfrage hängen von der Aktion ab, die der Integritätsschutz für den übergebenen Inhalt ergriffen hat.

  • Wenn der Integritätsschutz eingegriffen hat, wo der Inhalt nur maskiert ist, wird der exakte Inhalt mit der Maskierung zurückgegeben.

  • Wenn der Integritätsschutz eingegriffen und den Anforderungsinhalt blockiert hat, wird das Ausgabefeld einen einzigen Text darstellen, nämlich die auf der Integritätsschutzrichtlinie basierende, vorgefertigte Nachricht.

  • Wenn keine Integritätsschutzaktion für den Anforderungsinhalt ergriffen wurde, ist das Ausgabe-Array leer.

Guardrails takes no action

Beispiel anfordern

{ "source": "OUTPUT", "content": [ "text": { "text": "Hi, my name is Zaid. Which car brand is reliable?" } ] }

Beispiel für eine Antwort

{ "usage": { "topicPolicyUnitsProcessed": 1, "contentPolicyUnitsProcessed": 1, "wordPolicyUnitsProcessed": 0, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "NONE", "outputs": [], "assessments": [{}] }
Guardrails blocks content

Beispiel für eine Antwort

{ "usage": { "topicPolicyUnitsProcessed": 1, "contentPolicyUnitsProcessed": 1, "wordPolicyUnitsProcessed": 0, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "GUARDRAIL_INTERVENED", "outputs": [{ "text": "Configured guardrail canned message (i.e., can't respond)" }], "assessments": [{ "topicPolicy": { "topics": [{ "name": "Cars", "type": "DENY", "action": "BLOCKED" }] }, "sensitiveInformationPolicy": { "piiEntities": [{ "type": "NAME", "match": "ZAID", "action": "ANONYMIZED" }], "regexes": [] } }] }
Guardrails masks content

Beispiel für eine Antwort

Der Integritätsschutz greift ein und maskiert den Namen ZAID.

{ "usage": { "topicPolicyUnitsProcessed": 1, "contentPolicyUnitsProcessed": 1, "wordPolicyUnitsProcessed": 0, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "GUARDRAIL_INTERVENED", "outputs": [{ "text": "Hi, my name is {NAME}. Which car brand is reliable?" }, { "text": "Hello {NAME}, ABC Cars are reliable ..." } ], "assessments": [{ "sensitiveInformationPolicy": { "piiEntities": [{ "type": "NAME", "match": "ZAID", "action": "ANONYMIZED" }], "regexes": [] } }] }
AWS CLI example

Eingabebeispiel

aws bedrock-runtime apply-guardrail \ --cli-input-json '{ "guardrailIdentifier": "someGuardrailId", "guardrailVersion": "DRAFT", "source": "INPUT", "content": [ { "text": { "text": "How should I invest for my retirement? I want to be able to generate $5,000 a month" } } ] }' \ --region us-east-1 \ --output json

Ausgabebeispiel (der Inhalt wird blockiert)

{ "usage": { "topicPolicyUnits": 1, "contentPolicyUnits": 1, "wordPolicyUnits": 1, "sensitiveInformationPolicyUnits": 1, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "GUARDRAIL_INTERVENED", "outputs": [ { "text": "I apologize, but I am not able to provide fiduciary advice. =" } ], "assessments": [ { "topicPolicy": { "topics": [ { "name": "Fiduciary Advice", "type": "DENY", "action": "BLOCKED" } ] } } ] }

Geben Sie als ApplyGuardrail Antwort die vollständige Ausgabe zurück

Inhalte gelten als erkannt, wenn sie gegen Ihre Integritätsschutzkonfigurationen verstoßen. Beispielsweise gilt die kontextuelle Begründung als erkannt, wenn der Begründungs- oder Relevanzwert kleiner als der entsprechende Schwellenwert ist.

Standardmäßig gibt der ApplyGuardrailVorgang in einer Antwort nur erkannten Inhalt zurück. Sie können das outputScope-Feld mit dem Wert FULL angeben, um die vollständige Ausgabe zurückzugeben. In diesem Fall würde die Antwort auch unerkannte Einträge für ein verbessertes Debugging einschließen.

Sie können dasselbe Verhalten in den Operationen Invoke und Converse konfigurieren, indem Sie die Ablaufverfolgung auf die Option enabled full setzen.

Anmerkung

Der volle Ausgabebereich gilt nicht für Wortfilter oder Regex in Filtern für sensible Informationen. Er gilt jedoch für alle anderen Filterrichtlinien, einschließlich sensibler Informationen mit Filtern, die persönlich identifizierbare Informationen (PII) erkennen können.