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 avoir à invoquer les modèles de base.

Fonctionnalité de l'ApplyGuardrailAPI :

  • 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 le flux de votre application 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é de. FMs — ApplyGuardrail 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.

Appel de l' ApplyGuardrail API dans votre flux d'applications

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 sur « INPUT » lorsque le contenu à évaluer provient d'un utilisateur, généralement l'invite LLM. La source doit être définie sur « OUTPUT » lorsque les garde-fous de sortie du modèle doivent être appliqués, généralement une réponse LLM.

Rubriques

    Configuration du garde-corps à utiliser avec l'API ApplyGuardrail

    Vous spécifiez les informations de configuration du garde-corps dans le paramètre guardrailConfig d'entrée. La configuration inclut l'ID et la version 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 l' ApplyGuardrail API

    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.

    No guardrail intervention

    Exemple de demande

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

    Réponse si Guardrails n'est pas intervenu

    { "usage": { "topicPolicyUnitsProcessed": 1, "contentPolicyUnitsProcessed": 1, "wordPolicyUnitsProcessed": 0, "sensitiveInformationPolicyFreeUnits": 0 }, "action": "NONE", "outputs": [], "assessments": [{}] }
    Guardrails intervened with BLOCKED action

    Exemple de réponse

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

    Exemple de réponse

    Des rambardes sont intervenues en masquant le nom (le nom est masqué)

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

    Exemple d'entrée

    # 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

    Exemple de sortie

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