

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.

# Prueba de la barrera de protección
<a name="guardrails-test"></a>

Después de crear una barrera de protección, habrá disponible una versión de *borrador de trabajo* (`DRAFT`). El borrador de trabajo es una versión de la barrera de protección que puede editar e iterar continuamente hasta alcanzar una configuración satisfactoria para su caso de uso. Puede probar y comparar el borrador de trabajo u otras versiones de la barrera de protección para asegurarse de que las configuraciones cumplan los requisitos de su caso de uso. Edite las configuraciones en el borrador de trabajo y pruebe diferentes peticiones para ver lo bien que evalúa e intercepta las peticiones o las respuestas la barrera de protección.

Si le satisface la configuración, podrá crear una versión de la barrera de protección, que actuará como instantánea de las configuraciones del borrador de trabajo al crear la versión. Puede utilizar las versiones para agilizar la implementación de las barreras de protección en las aplicaciones de producción cada vez que las modifique. Los cambios en el borrador de trabajo o en una nueva versión creada no se reflejarán en su aplicación de IA generativa hasta que utilice específicamente la nueva versión en la aplicación.

------
#### [ Console ]

**Prueba de una barrera de protección para comprobar si bloquea contenido dañino**

1. Inicie sesión Consola de administración de AWS con una identidad de IAM que tenga permisos para usar la consola Amazon Bedrock. A continuación, abra la consola de Amazon Bedrock en [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. En el panel de navegación de la izquierda, elija **Barreras de protección**. A continuación, seleccione una barrera de protección en la sección **Barreras de protección**.

1. Aparece una ventana de prueba a la derecha. En la ventana de prueba dispone de las siguientes opciones:

   1. De forma predeterminada, en la ventana de prueba se utiliza el borrador de trabajo de la barrera de protección. Para probar una versión diferente de la barrera de protección, elija **Borrador de trabajo** en la parte superior de la ventana de prueba y, a continuación, seleccione la versión.

   1. Elija **Seleccionar modelo** para seleccionar un modelo. Después, seleccione **Aplicar**. Para cambiar el modelo, elija **Cambiar**.

   1. Introduzca una petición en el cuadro **Petición**.

   1. Para obtener una respuesta del modelo, seleccione **Ejecutar**.

   1. El modelo devuelve una respuesta en el cuadro **Respuesta final** (que puede modificar la barrera de protección). Si la barrera de protección bloquea o filtra la petición o la respuesta del modelo, aparece un mensaje en la sección **Verificación de barreras de protección** que le indica el número de infracciones detectadas por la barrera de protección.

   1. Para ver los temas o las categorías dañinas de la petición o respuesta reconocidos y permitidos por el filtro o bloqueados por él, seleccione **Ver seguimiento**.

   1. Utilice las pestañas **Petición** y **Respuesta del modelo** para ver los temas o las categorías dañinas filtrados o bloqueados por la barrera de protección.

También puede probar la barrera de protección en el **Área de juego de texto**. Seleccione el área de juego y seleccione la **Barrera de protección** en el panel **Configuraciones** antes de probar las peticiones.

------
#### [ API ]

Para usar una barandilla en la invocación de modelos, envíe una solicitud o. [InvokeModel[InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) Como alternativa, si crea una aplicación conversacional, puede usar la [API Converse](guardrails-use-converse-api.md).

**Formato de las solicitudes**

Los puntos de conexión de las solicitudes para invocar un modelo, con y sin transmisión, son los siguientes. *modelId*Sustitúyala por la ID del modelo que se va a utilizar.
+ `InvokeModel`— POST /model/ /invoke HTTP/1.1 *modelId*
+ `InvokeModelWithResponseStream`— POST /model/ *modelId* invoke-with-response-stream HTTP/1.1

El encabezado de ambas operaciones de la API tiene el siguiente formato.

```
Accept: accept
Content-Type: contentType
X-Amzn-Bedrock-Trace: trace
X-Amzn-Bedrock-GuardrailIdentifier: guardrailIdentifier
X-Amzn-Bedrock-GuardrailVersion: guardrailVersion
```

Los parámetros se describen a continuación.
+ Establezca `Accept` en el tipo MIME del cuerpo de la inferencia de la respuesta. El valor predeterminado es `application/json`.
+ Establezca `Content-Type` en el tipo MIME de los datos de entrada de la solicitud. El valor predeterminado es `application/json`.
+ Establezca `X-Amzn-Bedrock-Trace` en `ENABLED` para activar un seguimiento para ver, entre otras cosas, qué contenido han bloqueado las barreras de protección y por qué.
+ Establezca `X-Amzn-Bedrock-GuardrailIdentifier` con el identificador de la barrera de protección que desee aplicar a la solicitud y a la respuesta del modelo.
+ Establezca `X-Amzn-Bedrock-GuardrailVersion ` con la versión de la barrera de protección que desee aplicar a la solicitud y a la respuesta del modelo.

El formato general del cuerpo de la solicitud se muestra en el siguiente ejemplo. La propiedad `tagSuffix` solo se usa con *Etiquetado de entradas*. También puede configurar la barrera de protección para que transmita de forma síncrona o asíncrona utilizando `streamProcessingMode`. Esto solo funciona con `InvokeModelWithResponseStream`.

```
{
    <see model details>,
    "amazon-bedrock-guardrailConfig": {
        "tagSuffix": "string", 
        "streamProcessingMode": "SYNCHRONOUS" | "ASYNCHRONOUS"
    }
}
```

**aviso**  
Se producirá un error cuando se encuentre en las siguientes situaciones  
Si activa la barrera de protección pero no hay ningún campo `amazon-bedrock-guardrailConfig` en el cuerpo de la solicitud.
Si desactiva la barrera de protección pero especifica un campo `amazon-bedrock-guardrailConfig` en el cuerpo de la solicitud.
Si activa la barrera de protección, pero el `contentType` no es `application/json`.

Para ver el cuerpo de la solicitud para los distintos modelos, consulte [Parámetros de solicitud de inferencia y campos de respuesta para los modelos fundacionales](model-parameters.md).

**nota**  
En el caso de los modelos Cohere Command, solo puede especificar una generación en el campo `num_generations` si utiliza una barrera de protección.

Si activa una barrera de protección y su seguimiento, el formato general de la respuesta para invocar un modelo, con y sin transmisión, es el siguiente. Para ver el formato del resto del `body` para cada modelo, consulte [Parámetros de solicitud de inferencia y campos de respuesta para los modelos fundacionales](model-parameters.md). *contentType*Coincide con lo que especificó en la solicitud.
+ `InvokeModel`

  ```
  HTTP/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`: cada respuesta devuelve un `chunk` cuyo texto se encuentra en el campo `bytes`, junto con las excepciones que se produzcan. El seguimiento de la barrera de protección se devuelve solo para el último fragmento.

  ```
  HTTP/1.1 200
  X-Amzn-Bedrock-Content-Type: contentType
  Content-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 respuesta devuelve los siguientes campos si activa una barrera de protección.
+ `amazon-bedrock-guardrailAction`: especifica si la barrera de protección `INTERVENED` o no (`NONE`).
+ `amazon-bedrock-trace`: solo aparece si se activa el seguimiento. Contiene una lista de seguimientos, cada uno de los cuales proporciona información sobre el contenido que ha bloqueado la barrera de protección. El seguimiento contiene los siguientes campos:
  + `modelOutput`: objeto que contiene las salidas del modelo que estaba bloqueado.
  + `input`: contiene los siguientes detalles sobre la evaluación de la petición por parte de la barrera de protección:
    + `topicPolicy`: contiene `topics`, una lista de evaluaciones de cada política de temas que se haya infringido. Cada tema incluye los siguientes campos:
      + `name`: nombre de la política de temas.
      + `type`: especifica si se debe denegar el tema.
      + `action`: especifica que se ha bloqueado el tema. 
    + `contentPolicy`: contiene `filters`, una lista de evaluaciones de cada filtro de contenido que se haya infringido. Cada filtro incluye los siguientes campos:
      + `type`: categoría del filtro de contenido.
      + `confidence`: nivel de confianza de que el resultado puede clasificarse como perteneciente a la categoría dañina.
      + `action`: especifica que se ha bloqueado el contenido. Este resultado depende de la intensidad del filtro colocado en la barrera de protección.
    + `wordPolicy`: contiene una colección de palabras personalizadas, las palabras administradas que se han filtrado y la evaluación correspondiente de esas palabras. Cada lista incluye los siguientes campos:
      + `customWords`: lista de palabras personalizadas que coinciden con el filtro.
        + `match`: palabra o frase que coinciden con el filtro.
        + `action`: especifica que se ha bloqueado la palabra.
      + `managedWordLists`: lista de palabras administradas que coinciden con el filtro.
        + `match`: palabra o frase que coinciden con el filtro.
        + `type`: especifica el tipo de palabra administrada que coincide con el filtro. Por ejemplo, `PROFANITY` si coincide con el filtro de blasfemias.
        + `action`: especifica que se ha bloqueado la palabra.
    + `sensitiveInformationPolicy`: contiene los siguientes objetos, que incluyen evaluaciones de información de identificación personal (PII) y filtros de expresiones regulares que se han infringido:
      + `piiEntities`: lista de evaluaciones de cada filtro de PII que se haya infringido. Cada filtro incluye los siguientes campos:
        + `type`: tipo de PII que se ha encontrado.
        + `match`: palabra o frase que coinciden con el filtro.
        + `action`: especifica si la palabra era `BLOCKED` o se ha sustituido por un identificador (`ANONYMIZED`).
      + `regexes`: lista de evaluaciones para cada filtro de expresiones regulares que se haya infringido. Cada filtro incluye los siguientes campos:
        + `name`: nombre del filtro de expresiones regulares.
        + `regex`: tipo de PII que se ha encontrado.
        + `match`: palabra o frase que coinciden con el filtro.
        + `action`: especifica si la palabra era `BLOCKED` o se ha sustituido por un identificador (`ANONYMIZED`).
  + `outputs`: lista de detalles sobre la evaluación de la respuesta del modelo por parte de la barrera de protección. Cada elemento de la lista es un objeto que coincide con el formato del objeto `input`. Para obtener más información, consulte el campo `input`.

------