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.
Test de votre barrière de protection
Une fois que vous avez créé une barrière de protection, une version préliminaire (DRAFT) est disponible. La version préliminaire est une version de la barrière de protection que vous pouvez continuellement modifier et sur laquelle vous pouvez effectuer des itérations jusqu’à ce que vous obteniez une configuration satisfaisante pour votre cas d’utilisation. Vous pouvez tester et comparer la version préliminaire ou d’autres versions de la barrière de protection pour vous assurer que les configurations répondent aux exigences de votre cas d’utilisation. Modifiez les configurations dans la version préliminaire et testez différentes invites pour voir dans quelle mesure la barrière de protection évalue et intercepte les invites ou les réponses.
Lorsque vous êtes satisfait de la configuration, vous pouvez créer une version de la barrière de protection, qui sert d’instantané des configurations de la version préliminaire lorsque vous créez la version. Vous pouvez utiliser des versions pour rationaliser le déploiement des barrières de protection dans les applications de production chaque fois que vous apportez des modifications à vos barrières de protection. Toute modification apportée à la version préliminaire ou à une nouvelle version créée ne sera reflétée dans votre application d’IA générative que lorsque vous utiliserez spécifiquement la nouvelle version dans l’application.
- Console
-
Pour tester une barrière de protection afin de déterminer s’il bloque le contenu préjudiciable
-
Connectez-vous à la AWS Management Console avec une identité IAM autorisée à utiliser la console Amazon Bedrock. Ensuite, ouvrez la console Amazon Bedrock à l’adresse https://console.aws.amazon.com/bedrock
. -
Choisissez Barrières de protection dans le volet de navigation de gauche. Sélectionnez ensuite une barrière de protection dans la section Barrières de protection.
-
Une fenêtre de test s’affiche à droite. Vous disposez des options suivantes dans la fenêtre de test :
-
Par défaut, la version préliminaire de la barrière de protection est utilisée dans la fenêtre de test. Pour tester une autre version de la barrière de protection, choisissez Version préliminaire en haut de la fenêtre de test, puis sélectionnez la version.
-
Pour sélectionner un modèle, choisissez Sélectionner un modèle. Après avoir fait votre choix, sélectionnez Appliquer. Pour modifier le modèle, choisissez Modifier.
-
Saisissez une invite dans la zone Invite.
-
Pour obtenir une réponse du modèle, sélectionnez Exécuter.
-
Le modèle renvoie une réponse dans la zone Réponse finale (qui peut être modifiée par la barrière de protection). Si la barrière de protection bloque ou filtre l’invite ou la réponse du modèle, un message apparaît sous Contrôle de barrière de protection pour vous informer du nombre de violations détectées par la barrière de protection.
-
Pour afficher les rubriques ou les catégories préjudiciables figurant dans l’invite ou la réponse qui ont été reconnus et autorisés au-delà du filtre ou bloqués par celui-ci, sélectionnez Afficher le suivi.
-
Utilisez les onglets Invite et Réponse du modèle pour afficher les rubriques ou les catégories préjudiciables qui ont été filtrées ou bloquées par la barrière de protection.
-
Vous pouvez également tester la barrière de protection dans le Terrain de jeu de texte. Sélectionnez le terrain de jeu et sélectionnez la Barrière de protection dans le volet Configurations avant de tester les invites.
-
- API
-
Pour utiliser une barrière de protection lors de l’invocation d’un modèle, envoyez une requête InvokeModel ou InvokeModelWithResponseStream. Si vous créez une application conversationnelle, vous pouvez également utiliser l’API Converse.
Format des demandes
Les points de terminaison de la requête pour invoquer un modèle, avec ou sans streaming, sont les suivants. Remplacez
modelIdpar l’ID du modèle à utiliser.-
InvokeModel: POST /model/modelId/invoke HTTP/1.1 -
InvokeModelWithResponseStream: POST /model/modelId/invoke-with-response-stream HTTP/1.1
L’en-tête des deux opérations d’API est au format suivant.
Accept:acceptContent-Type:contentTypeX-Amzn-Bedrock-Trace:traceX-Amzn-Bedrock-GuardrailIdentifier:guardrailIdentifierX-Amzn-Bedrock-GuardrailVersion:guardrailVersionLes paramètres sont décrits ci-dessous.
-
Définissez
Acceptsur le type de MIME du corps d’inférence dans la réponse. La valeur par défaut estapplication/json. -
Définissez
Content-Typesur le type de MIME des données d’entrée de la requête. La valeur par défaut estapplication/json. -
Définissez
X-Amzn-Bedrock-TracesurENABLEDpour permettre un suivi afin de voir, entre autres, quel contenu a été bloqué par des barrières de protection et pourquoi. -
Définissez
X-Amzn-Bedrock-GuardrailIdentifieravec l’identifiant de la barrière de protection que vous souhaitez appliquer à la requête et à la réponse du modèle. -
Définissez
X-Amzn-Bedrock-GuardrailVersionavec la version de la barrière de protection que vous souhaitez appliquer à la requête et à la réponse du modèle.
Le format général du corps de la requête est illustré dans l’exemple suivant. La propriété
tagSuffixn’est utilisée qu’avec le balisage d’entrée. Vous pouvez également configurer la barrière de protection lors du streaming de manière synchrone ou asynchrone à l’aide destreamProcessingMode. Cela fonctionne uniquement avecInvokeModelWithResponseStream.{<see model details>, "amazon-bedrock-guardrailConfig": { "tagSuffix": "string", "streamProcessingMode": "SYNCHRONOUS" | "ASYNCHRONOUS" } }Avertissement
Vous obtiendrez un message d’erreur dans les situations suivantes
-
Vous activez la barrière de protection mais il n’y a aucun champ
amazon-bedrock-guardrailConfigdans le corps de la requête. -
Vous désactivez la barrière de protection mais vous spécifiez un champ
amazon-bedrock-guardrailConfigdans le corps de la requête. -
Vous activez la barrière de protection, mais le
contentTypen’est pasapplication/json.
Pour voir le corps de la requête pour les différents modèles, consultez Paramètres de demande d’inférence et champs de réponse pour les modèles de fondation.
Note
Pour les modèles Cohere Command, vous ne pouvez spécifier qu’une génération dans le champ
num_generationssi vous utilisez une barrière de protection.Si vous activez une barrière de protection et son suivi, le format général de la réponse pour invoquer un modèle, avec ou sans streaming, est le suivant. Pour connaître le format du reste du
bodypour chaque modèle, consultez Paramètres de demande d’inférence et champs de réponse pour les modèles de fondation. LecontentTypecorrespond à ce que vous avez spécifié dans la requête.-
InvokeModelHTTP/1.1 200 Content-Type: contentType { <see model details for model-specific fields>, "completion": "<model response>", "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": [ "<see model details for model-specific fields>" ], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } } -
InvokeModelWithResponseStream: chaque réponse renvoie unchunkdont le texte se trouve dans le champbytes, ainsi que toutes les exceptions qui se produisent. Le suivi de la barrière de protection n’est renvoyé que pour le dernier fragment.HTTP/1.1 200 X-Amzn-Bedrock-Content-Type:contentTypeContent-type: application/json { "chunk": { "bytes": "<blob>" }, "internalServerException": {}, "modelStreamErrorException": {}, "throttlingException": {}, "validationException": {}, "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": ["<see model details for model-specific fields>"], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } }
La réponse renvoie les champs suivants si vous activez une barrière de protection.
-
amazon-bedrock-guardrailAction: spécifie si la barrière de protection estINTERVENEDou non (NONE). -
amazon-bedrock-trace: n’apparaît que si vous activez le suivi. Contient une liste des suivis, chacun fournissant des informations sur le contenu bloqué par la barrière de protection. Le suivi comporte les champs suivants :-
modelOutput: objet contenant les sorties du modèle bloqué. -
input: contient les informations suivantes concernant l’évaluation de l’invite par la barrière de protection :-
topicPolicy: contienttopics, une liste d’évaluations pour chaque stratégie de rubrique qui n’a pas été respectée. Chaque rubrique inclut les champs suivants :-
name: nom de la stratégie de rubrique. -
type: spécifie s’il faut refuser la rubrique. -
action: spécifie que la rubrique a été bloquée.
-
-
contentPolicy: contientfilters, une liste d’évaluations pour chaque filtre de contenu enfreint. Chaque filtre inclut les champs suivants :-
type: catégorie du filtre de contenu. -
confidence: niveau de certitude que la sortie peut être classée comme appartenant à la catégorie préjudiciable. -
action: spécifie que le contenu a été bloqué. Ce résultat dépend de la force du filtre défini dans la barrière de protection.
-
-
wordPolicy: contient une collection de mots personnalisés et de mots gérés qui ont été filtrés et une évaluation correspondante de ces mots. Chaque liste contient les champs suivants :-
customWords: liste de mots personnalisés correspondant au filtre.-
match: mot ou phrase correspondant au filtre. -
action: spécifie que le mot a été bloqué.
-
-
managedWordLists: liste de mots gérés correspondant au filtre.-
match: mot ou phrase correspondant au filtre. -
type: spécifie le type de mot géré correspondant au filtre. Par exemple,PROFANITYs’il correspond au filtre de blasphème. -
action: spécifie que le mot a été bloqué.
-
-
-
sensitiveInformationPolicy: contient les objets suivants, qui contiennent des évaluations des données d’identification personnelle (PII) et des filtres regex qui ont été enfreints :-
piiEntities: liste d’évaluations pour chaque filtre de PII enfreint. Chaque filtre contient les champs suivants :-
type: type de PII qui a été trouvé. -
match: mot ou phrase correspondant au filtre. -
action: spécifie si le mot a étéBLOCKEDou a été remplacé par un identifiant (ANONYMIZED).
-
-
regexes: liste d’évaluations pour chaque filtre regex enfreint. Chaque filtre contient les champs suivants :-
name: nom du filtre regex. -
regex: type de PII qui a été trouvé. -
match: mot ou phrase correspondant au filtre. -
action: spécifie si le mot a étéBLOCKEDou a été remplacé par un identifiant (ANONYMIZED).
-
-
-
-
outputs: liste de détails sur l’évaluation de la réponse du modèle par la barrière de protection. Chaque élément de la liste est un objet qui correspond au format de l’objetinput. Pour plus de détails, consultez le champinput.
-
-