Usa la ApplyGuardrail API en tu aplicación - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Usa la ApplyGuardrail API en tu aplicación

Las barreras de protección se utilizan para implementar protecciones para las aplicaciones de IA generativa que se personalizan según sus casos de uso y se alinean con sus políticas de IA responsable. Las barreras de protección le permiten configurar los temas denegados, filtrar el contenido dañino y eliminar la información confidencial.

Puede usar la API de ApplyGuardrail para evaluar cualquier texto con sus barreras de protección de Amazon Bedrock preconfiguradas, sin invocar los modelos fundacionales.

Las características de la ApplyGuardrail API incluyen:

  • Validación de contenido: puedes enviar cualquier entrada o salida de texto a la ApplyGuardrail API para compararla con las reglas definidas para evitar temas, los filtros de contenido, los detectores de PII y las listas de palabras bloqueadas. Puede evaluar las entradas de los usuarios y las salidas generadas por los FM de forma independiente.

  • Implementación flexible: puede integrar la ApplyGuardrail API en cualquier parte del flujo de su aplicación para validar los datos antes de procesar o entregar los resultados al usuario. Por ejemplo, si utiliza una aplicación RAG, ahora puede evaluar la entrada del usuario antes de recuperar el resultado, en lugar de esperar hasta que se genere la respuesta final.

  • Desacoplada de los modelos básicos: la ApplyGuardrail API está disociada de los modelos fundamentales. Ahora puede usar las barreras de protección sin invocar los modelos fundacionales. Puede utilizar los resultados de la evaluación para diseñar la experiencia en la aplicación de IA generativa.

Incorpore el flujo de su ApplyGuardrail aplicación

La solicitud permite al cliente pasar todo el contenido que debe protegerse mediante las barreras de protección definidas. El campo de origen debe configurarse INPUT cuando el contenido que se va a evaluar proviene de un usuario (normalmente, el mensaje de entrada al LLM). La fuente debe configurarse en el OUTPUT momento en que se deben aplicar las barreras de salida del modelo (normalmente, la respuesta LLM).

Especifique la barandilla que se va a utilizar con ApplyGuardrail

Al ApplyGuardrail utilizarla, se especifica el guardrailIdentifier extremo guardrailVersion de la barandilla que se quiere utilizar. También puede habilitar el rastreo de la barandilla, que proporciona información sobre el contenido que bloquea la barandilla.

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

Ejemplos de casos de uso de ApplyGuardrail

Los resultados de la solicitud de ApplyGuardrail dependen de la acción que haya realizado la barrera de protección con el contenido transmitido.

  • Si la barrera de protección interviene donde el contenido solo está enmascarado, se devuelve el contenido exacto con el enmascaramiento aplicado.

  • Si la barrera de protección ha intervenido y bloqueado el contenido de la solicitud, el campo de salida será un texto único, que es el mensaje predefinido según la configuración de la barrera de protección.

  • Si no se ha realizado ninguna acción de barrera de protección sobre el contenido de la solicitud, la matriz de salidas estará vacía.

Guardrails takes no action

Ejemplo de solicitud

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

Ejemplo de respuesta

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

Ejemplo de respuesta

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

Ejemplo de respuesta

Guardrails interviene ocultando el nombre. 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

Ejemplo de entrada

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

Ejemplo de salida (bloquea el contenido)

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

Devuelve el resultado completo en ApplyGuardrail respuesta

El contenido se considera detectado si infringe las configuraciones de las barandillas. Por ejemplo, la fundamentación contextual se considera detectada si la puntuación de fundamentación o relevancia es inferior al umbral correspondiente.

De forma predeterminada, la ApplyGuardrailoperación solo devuelve el contenido detectado en una respuesta. Puede especificar el outputScope campo con el FULL valor para obtener el resultado completo. En este caso, la respuesta también incluirá entradas no detectadas para mejorar la depuración.

Puede configurar este mismo comportamiento en las Converse operaciones Invoke y configurando trace en la opción completa habilitada.

nota

El alcance completo de los resultados no se aplica a los filtros de palabras ni a las expresiones regulares en los filtros de información confidencial. Se aplica a todas las demás políticas de filtrado, incluida la información confidencial, con filtros que pueden detectar la información de identificación personal (PII).