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 das ApplyGuardrail API in Ihrer Anwendung
Guardrails wird verwendet, um Sicherheitsvorkehrungen für Ihre generativen KI-Anwendungen zu implementieren, die auf Ihre Anwendungsfälle zugeschnitten sind und auf Ihre verantwortlichen KI-Richtlinien abgestimmt sind. Mit Guardrails können Sie abgelehnte Themen konfigurieren, schädliche Inhalte filtern und vertrauliche Informationen entfernen.
Sie können den verwenden ApplyGuardrail
API, um jeden Text mit Ihren vorkonfigurierten Amazon Bedrock Guardrails zu bewerten, ohne die Foundation-Modelle aufrufen zu müssen.
Merkmal des: ApplyGuardrail
API
-
Inhaltsvalidierung — Sie können jede Texteingabe oder -ausgabe an die senden ApplyGuardrail
API, um sie mit Ihren definierten Regeln zur Themenvermeidung, Inhaltsfiltern, PII Detektoren und Wortblocklisten zu vergleichen. Sie können Benutzereingaben und FM-generierte Ausgaben unabhängig voneinander auswerten.
-
Flexibler Einsatz — Sie können das System ApplyGuardrail
API überall in Ihren Anwendungsablauf integrieren, um Daten zu validieren, bevor sie verarbeitet oder dem Benutzer Ergebnisse zur Verfügung gestellt werden. Wenn Sie beispielsweise eine RAG Anwendung verwenden, können Sie jetzt die Benutzereingaben vor dem Abruf auswerten, anstatt bis zur endgültigen Generierung der Antwort zu warten.
-
Entkoppelt von. FMs — ApplyGuardrail
API ist von grundlegenden Modellen entkoppelt. Sie können jetzt Guardrails verwenden, ohne Foundation Models aufzurufen. Sie können die Bewertungsergebnisse verwenden, um das Erlebnis in Ihrer generativen KI-Anwendung zu entwerfen.
Rufen Sie den ApplyGuardrail API in Ihrem App-Flow auf
Die Anfrage ermöglicht es dem Kunden, all seine Inhalte, die geschützt werden sollen, mithilfe seiner definierten Guardrails weiterzugeben. Das Quellfeld sollte auf „INPUT“ gesetzt werden, wenn der auszuwertende Inhalt von einem Benutzer stammt, normalerweise die Aufforderung. LLM Die Quelle sollte auf „OUTPUT“ gesetzt werden, wenn die Leitplanken für die Modellausgabe durchgesetzt werden sollen, in der Regel eine Antwort. LLM
Sie geben Konfigurationsinformationen für die Leitplanke im Eingabeparameter an. guardrailConfig
Die Konfiguration umfasst die ID und die Version der Leitplanke, die Sie verwenden möchten. Sie können die Ablaufverfolgung auch für die Leitplanke aktivieren, wodurch Informationen über den Inhalt bereitgestellt werden, den die Leitplanke blockiert hat.
- 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"
}
}
]
}
ApplyGuardrail APIBeispiele für Anwendungsfälle
Die Ergebnisse der ApplyGuardrail
Anfrage hängen von der Aktion ab, die Guardrail für den übergebenen Inhalt ergriffen hat.
-
Wenn Guardrail dort eingegriffen hat, wo der Inhalt nur maskiert ist, wird der exakte Inhalt mit angewendeter Maskierung zurückgegeben.
-
Wenn Guardrail eingegriffen und den Anforderungsinhalt blockiert hat, besteht das Ausgabefeld aus einem einzigen Text, bei dem es sich um die vorgefertigte Nachricht handelt, die auf der Guardrail-Konfiguration basiert.
-
Wenn keine Guardrail-Aktion für den Anforderungsinhalt ergriffen wurde, ist das Ausgabe-Array leer.
- No guardrail intervention
-
Beispiel für eine Anfrage
{
"source": "OUTPUT",
"content": [
"text": {
"text": "Hi, my name is Zaid. Which car brand is reliable?",
}
]
}
Reaktion, wenn Guardrails nicht eingegriffen hat
{
"usage": {
"topicPolicyUnitsProcessed": 1,
"contentPolicyUnitsProcessed": 1,
"wordPolicyUnitsProcessed": 0,
"sensitiveInformationPolicyFreeUnits": 0
},
"action": "NONE",
"outputs": [],
"assessments": [{}]
}
- Guardrails intervened with BLOCKED action
-
Beispiel für eine Antwort
{
"usage": {
"topicPolicyUnitsProcessed": 1,
"contentPolicyUnitsProcessed": 1,
"wordPolicyUnitsProcessed": 0,
"sensitiveInformationPolicyFreeUnits": 0
},
"action": "GUARDRAIL_INTERVENED",
"outputs": [{
"text": "Configured guardrial canned message, i.e cannot respond",
}],
"assessments": [{
"topicPolicy": {
"topics": [{
"name": "Cars",
"type": "DENY",
"action": "BLOCKED"
}]
},
"sensitiveInformationPolicy": {
"piiEntities": [{
"type": "NAME",
"match": "ZAID",
"action": "ANONYMIZED"
}],
"regexes": []
}
}]
}
- Guardrails intervened with MASKED action
-
Beispiel für eine Antwort
Guardrails hat bei der Namensmaskierung eingegriffen (Name ist maskiert)
{
"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": "MASKED"
}],
"regexes": []
}
}]
}
- AWS CLI Example
-
Eingabebeispiel
# Make sure preview CLI is downloaded and setup
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
{
"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"
}
]
}
}
]
}