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