ApplyGuardrail APIUtilízalo 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.

ApplyGuardrail APIUtilízalo en tu aplicación

Los guardrails se utilizan para implementar medidas de seguridad para sus aplicaciones de IA generativa, que se personalizan para sus casos de uso y se ajustan a sus políticas de IA responsables. Guardrails le permite configurar los temas rechazados, filtrar el contenido dañino y eliminar la información confidencial.

Puede utilizarlos ApplyGuardrail API para evaluar cualquier texto con las barandillas Amazon Bedrock preconfiguradas, sin necesidad de invocar los modelos de base.

Característica de: ApplyGuardrail API

  • Validación de contenido: puede enviar cualquier entrada o salida de texto al ApplyGuardrail API para compararlo con las reglas de evitación de temas, los filtros de contenido, los PII detectores y las listas de palabras bloqueadas que haya definido. Puede evaluar las entradas de usuario y las salidas generadas por FM de forma independiente.

  • Implementación flexible: puede integrar ApplyGuardrail API cualquier parte del flujo de aplicaciones para validar los datos antes de procesar o entregar los resultados al usuario. Por ejemplo, si utiliza una RAG aplicación, ahora puede evaluar las entradas del usuario antes de realizar la recuperación, en lugar de esperar a que se genere la respuesta final.

  • Desacoplado de. FMs — ApplyGuardrail API está desacoplado de los modelos fundamentales. Ahora puede usar Guardrails sin invocar Foundation Models. Puede utilizar los resultados de la evaluación para diseñar la experiencia en su aplicación de IA generativa.

Llamar al ApplyGuardrail API flujo de tu aplicación

La solicitud permite al cliente pasar todo el contenido que debe protegerse utilizando las barandillas definidas. El campo fuente debe estar establecido en «INPUT» cuando el contenido que se va a evaluar proviene de un usuario, normalmente el LLM mensaje. La fuente debe estar configurada en «OUTPUT» cuando se deben aplicar los Guardrails de salida del modelo, normalmente una LLM respuesta.

Temas

    Configurar la barandilla para usarla con ApplyGuardrail API

    La información de configuración de la barandilla se especifica en el parámetro de entrada. guardrailConfig La configuración incluye el ID y la versión de la barandilla que desea utilizar. También puede habilitar el rastreo de la barandilla, que proporciona información sobre el contenido que la barandilla ha bloqueado.

    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 APIEjemplos de casos de uso

    Los resultados de la ApplyGuardrail solicitud dependen de la acción que guardrail haya realizado con el contenido pasado.

    • Si la barandilla interviene donde el contenido solo está enmascarado, se devuelve el contenido exacto con el enmascaramiento aplicado.

    • Si guardrail intervino y bloqueó el contenido de la solicitud, el campo de salida será un texto único, que es el mensaje predefinido según la configuración de guardarrail.

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

    No guardrail intervention

    Ejemplo de solicitud

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

    Respuesta si Guardrails no intervino

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

    Ejemplo de respuesta

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

    Ejemplo de respuesta

    Las barandillas intervinieron ocultando su nombre (el nombre está enmascarado)

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

    Ejemplo de entrada

    # 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

    Ejemplo de resultados

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