Testar uma barreira de proteção - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Testar uma barreira de proteção

Após a criação de uma barreira de proteção, uma versão de rascunho de trabalho (DRAFT) estará disponível. O rascunho de trabalho é uma versão da barreira de proteção que pode ser usada para editar e iterar continuamente até chegar a uma configuração satisfatória para o caso de uso. Você pode testar e comparar o rascunho de trabalho ou outras versões do guardrail para garantir que as configurações atendam aos requisitos de seu caso de uso. Edite as configurações no rascunho de trabalho e teste diferentes prompts para verificar se a barreira de proteção avalia e intercepta os prompts ou as respostas.

Quando a configuração estiver adequada, crie uma versão da barreira de proteção, que atua como um snapshot das configurações do rascunho de trabalho ao criar a versão. É possível usar versões para simplificar a implantação de barreiras de proteção em aplicações de produção sempre que fizer modificações nas barreiras de proteção. Qualquer alteração no rascunho de trabalho ou em uma versão criada não será refletida na aplicação de IA generativa até que você use especificamente a nova versão na aplicação.

Console
Como testar uma barreira de proteção para verificar se ela bloqueia conteúdo prejudicial
  1. Faça login na função AWS Management Console usando uma função do IAM com as permissões do Amazon Bedrock e abra o console do Amazon Bedrock em. https://console.aws.amazon.com/bedrock/

  2. No painel de navegação à esquerda, escolha Barreiras de proteção. Selecione uma barreira de proteção na seção Barreiras de proteção.

  3. Uma janela de teste é exibida à direita. É possível fazer as seguintes opções na janela de teste:

    1. Por padrão, o rascunho de trabalho da barreira de proteção é usado na janela de teste. Para testar uma versão diferente da barreira de proteção, escolha Rascunho de trabalho na parte superior da janela de teste e selecione a versão.

    2. Escolha Selecionar modelo para escolher um modelo. Para alterar uma opção, selecione Aplicar. Para alterar o modelo, escolha Alterar.

    3. Insira um prompt na caixa Prompt.

    4. Para obter uma resposta do modelo, selecione Executar.

    5. O modelo retorna uma resposta na caixa Resposta final (que pode ser modificada pela barreira de proteção). Se a barreira de proteção bloquear ou filtrar a resposta do prompt ou do modelo, uma mensagem será exibida em Verificação da barreira de proteção informando quantas violações foram detectadas pela barreira de proteção.

    6. Para visualizar os tópicos ou categorias prejudiciais no prompt ou na resposta que foram reconhecidos e autorizados a passar pelo filtro ou bloqueados por ele, selecione Visualizar rastreamento.

    7. Use as guias Prompt e Resposta do modelo para visualizar os tópicos ou as categorias prejudiciais que foram filtrados ou bloqueados pela barreira de proteção.

Você também pode testar a barreira de proteção no Playground de texto. Selecione o playground e selecione a Barreira de proteção no painel Configurações antes de testar os prompts.

API

Para usar uma grade de proteção na invocação do modelo, envie uma solicitação or. InvokeModelInvokeModelWithResponseStream Como alternativa, se você estiver criando um aplicativo de conversação, poderá usar o Converse API.

Formato de solicitação

Os endpoints de solicitações para invocar um modelo, com e sem streaming, são os seguintes. modelIdSubstitua pela ID do modelo a ser usado.

  • InvokeModel— POST /model/ /invoke HTTP/1.1 modelId

  • InvokeModelWithResponseStream— POST /model//modelIdHTTP/1.1 invoke-with-response-stream

O cabeçalho das duas operações de API tem o formato a seguir.

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

Os parâmetros são descritos a seguir.

  • Defina Accept como o tipo MIME do corpo de inferência na resposta. O valor padrão é application/json.

  • Defina Content-Type como o tipo MIME dos dados de entrada na solicitação. O valor padrão é application/json.

  • Defina X-Amzn-Bedrock-Trace como ENABLED para habilitar um rastreamento para ver, entre outras coisas, o conteúdo que foi bloqueado por barreiras de proteção e por quê.

  • Defina X-Amzn-Bedrock-GuardrailIdentifier com o identificador da barreira de proteção que você deseja aplicar à solicitação e à resposta da solicitação e do modelo.

  • Defina X-Amzn-Bedrock-GuardrailVersion com a versão da barreira de proteção que você deseja aplicar à resposta ao modelo e solicitação.

O formato geral do corpo da solicitação é mostrado no exemplo a seguir. A propriedade tagSuffix só é usada com a Marcação de entrada. Você também pode configurar a barreira de proteção em streaming de forma síncrona ou assíncrona usando streamProcessingMode. Isso só funciona com InvokeModelWithResponseStream.

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

Você receberá um erro nas seguintes situações:

  • Você habilita a barreira de proteção, mas não há nenhum campo amazon-bedrock-guardrailConfig no corpo da solicitação.

  • Você desabilita a barreira de proteção, mas especifica um campo amazon-bedrock-guardrailConfig no corpo da solicitação.

  • Você habilita a barreira de proteção, mas o contentType não está na application/json.

Para ver o corpo da solicitação para diferentes modelos, consulte Parâmetros de solicitação de inferência e campos de resposta para modelos de base.

nota

Para Cohere Command modelos, você só pode especificar uma geração no num_generations campo se usar uma grade de proteção.

Se você habilitar uma barreira de proteção e o respectivo rastreamento, o formato geral da resposta da invocação de um modelo, com e sem streaming, será o seguinte: Para ver o formato do restante do body de cada modelo, consulte Parâmetros de solicitação de inferência e campos de resposta para modelos de base. O contentType corresponde ao que você especificou na solicitação.

  • 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 resposta retorna um chunk cujo texto está no campo bytes, bem como quaisquer exceções ocorridas. O rastreamento da barreira de proteção é retornado somente para o ú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"] } } }

A resposta exibirá os campos a seguir se você habilitar uma barreira de proteção.

  • amazon-bedrock-guardrailAction: especifica se a barreira de proteção INTERVENED ou não (NONE).

  • amazon-bedrock-trace: só aparece se você habilitar o rastreamento. Contém uma lista de rastreamentos, cada um dos quais fornece informações sobre o conteúdo bloqueado pela barreira de proteção. O rastreamento contém os seguintes campos:

    • modelOutput: um objeto que contém as saídas do modelo bloqueado.

    • input: contém os seguintes detalhes sobre a avaliação do prompt pelas barreiras de proteção:

      • topicPolicy: contém topics, uma lista de avaliações de cada política do tópico violada. Cada tópico inclui os seguintes campos:

        • name: o nome da política do tópico.

        • type: especifica se o tópico deve ser negado.

        • action: especifica que o tópico foi bloqueado

      • contentPolicy: contém filters, uma lista de avaliações de cada filtro de conteúdo violado. Cada filtro inclui os seguintes campos:

        • type: a categoria do filtro de conteúdo.

        • confidence: o nível de confiança com que a saída pode ser categorizada como pertencente à categoria prejudicial.

        • action: especifica que o conteúdo foi bloqueado. Esse resultado depende da intensidade do filtro colocado na barreira de proteção.

      • wordPolicy: contém uma coleção de palavras personalizadas e de palavras gerenciadas que foram filtradas e uma avaliação correspondente a essas palavras. Cada objeto contém os seguintes campos:

        • customWords: uma lista de palavras personalizadas que correspondem ao filtro.

          • match: a palavra ou frase que correspondeu ao filtro.

          • action: especifica que a palavra foi bloqueada.

        • managedWordLists: uma lista de palavras gerenciadas que corresponderam ao filtro.

          • match: a palavra ou frase que correspondeu ao filtro.

          • type: especifica o tipo de palavra gerenciada que correspondeu ao filtro. Por exemplo, PROFANITY se corresponder ao filtro de palavrões.

          • action: especifica que a palavra foi bloqueada.

      • sensitiveInformationPolicy: contém os seguintes objetos, que contêm avaliações de informações de identificação pessoal (PII) e filtros regex que foram violados:

        • piiEntities: uma lista de avaliações de cada filtro de PII violado. Cada filtro contém os seguintes campos:

          • type: o tipo de PII encontrado.

          • match: a palavra ou frase que correspondeu ao filtro.

          • action: especifica se a palavra foi BLOCKED ou substituída por um identificador (ANONYMIZED).

        • regexes: uma lista de avaliações de cada filtro regex violado. Cada filtro contém os seguintes campos:

          • name: o nome do filtro regex.

          • regex: o tipo de PII encontrado.

          • match: a palavra ou frase que correspondeu ao filtro.

          • action: especifica se a palavra foi BLOCKED ou substituída por um identificador (ANONYMIZED).

    • outputs: uma lista de detalhes sobre a avaliação da barreira de proteção da resposta do modelo. Cada item na lista é um objeto que corresponde ao formato do objeto input. Para obter mais detalhes, consulte o campo input.