Utilisez l' ApplyGuardrail API dans votre application - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisez l' ApplyGuardrail API dans votre application

Guardrails est utilisé pour mettre en œuvre des mesures de protection pour vos applications d'IA générative, personnalisées en fonction de vos cas d'utilisation et conformes à vos politiques responsables en matière d'IA. Guardrails vous permet de configurer les sujets refusés, de filtrer les contenus dangereux et de supprimer les informations sensibles.

Vous pouvez utiliser l'ApplyGuardrailAPI pour évaluer n'importe quel texte à l'aide de vos Amazon Bedrock Guardrails préconfigurés, sans invoquer les modèles de base.

Les fonctionnalités de l'ApplyGuardrailAPI incluent :

  • Validation du contenu : vous pouvez envoyer n'importe quelle entrée ou sortie de texte à l'ApplyGuardrailAPI pour le comparer aux règles d'évitement des sujets, aux filtres de contenu, aux détecteurs d'informations personnelles et aux listes de blocage de mots que vous avez définies. Vous pouvez évaluer les entrées utilisateur et les sorties générées par FM indépendamment.

  • Déploiement flexible : vous pouvez intégrer l'ApplyGuardrailAPI n'importe où dans votre flux d'applications pour valider les données avant de les traiter ou de communiquer les résultats à l'utilisateur. Par exemple, si vous utilisez une application RAG, vous pouvez désormais évaluer les données saisies par l'utilisateur avant d'effectuer la récupération, au lieu d'attendre la génération de la réponse finale.

  • Découplée des modèles de baseApplyGuardrail L'API est découplée des modèles fondamentaux. Vous pouvez désormais utiliser Guardrails sans invoquer Foundation Models. Vous pouvez utiliser les résultats de l'évaluation pour concevoir l'expérience de votre application d'IA générative.

Appelez ApplyGuardrail votre flux de candidature

La demande permet au client de transmettre tout son contenu qui doit être protégé à l'aide des garde-corps définis. Le champ source doit être défini INPUT lorsque le contenu à évaluer provient d'un utilisateur (généralement l'invite de saisie du LLM). La source doit être définie sur le OUTPUT moment où les barrières de sortie du modèle doivent être appliquées (généralement la réponse LLM).

Spécifiez le garde-corps à utiliser avec ApplyGuardrail

Lors de l'utilisationApplyGuardrail, vous spécifiez guardrailVersion l'extrémité guardrailIdentifier et du garde-corps que vous souhaitez utiliser. Vous pouvez également activer le suivi du garde-corps, qui fournit des informations sur le contenu bloqué par le garde-corps.

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" } } ] }

Exemples de cas d'utilisation de ApplyGuardrail

Les résultats de la ApplyGuardrail demande dépendent de l'action entreprise par le garde-fou sur le contenu transmis.

  • Si un garde-corps intervient là où le contenu est uniquement masqué, le contenu exact est renvoyé avec le masquage appliqué.

  • Si le garde-corps est intervenu et a bloqué le contenu de la demande, le champ de sortie sera un seul texte, qui est le message prédéfini basé sur la configuration du garde-corps.

  • Si aucune action de garde-fou n'a été prise sur le contenu de la demande, le tableau des sorties est vide.

Guardrails takes no action

Exemple de demande

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

Exemple de réponse

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

Exemple de réponse

{ "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

Exemple de réponse

Guardrails intervient en masquant le nom. 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

Exemple d'entrée

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

Exemple de sortie (contenu des blocs)

{ "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" } ] } } ] }

Renvoie la sortie complète en ApplyGuardrail réponse

Le contenu est considéré comme détecté s'il enfreint les configurations de votre garde-corps. Par exemple, un ancrage contextuel est considéré comme détecté si le score de base ou de pertinence est inférieur au seuil correspondant.

Par défaut, l'ApplyGuardrailopération renvoie uniquement le contenu détecté dans une réponse. Vous pouvez spécifier le outputScope champ avec la FULL valeur pour renvoyer la sortie complète. Dans ce cas, la réponse inclura également des entrées non détectées pour un meilleur débogage.

Vous pouvez configurer ce même comportement dans les Converse opérations Invoke et en réglant trace sur l'option complète activée.

Note

L'étendue de sortie complète ne s'applique pas aux filtres de mots ou aux expressions régulières dans les filtres d'informations sensibles. Elle s'applique à toutes les autres politiques de filtrage, y compris les informations sensibles avec des filtres capables de détecter les informations personnelles identifiables (PII).