

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Testare il guardrail
<a name="guardrails-test"></a>

Dopo aver creato un guardrail, è disponibile una versione *bozza di lavoro* (`DRAFT`). La bozza di lavoro è una versione del guardrail che è possibile modificare e perfezionare continuamente fino a raggiungere una configurazione soddisfacente per il proprio caso d’uso. È possibile eseguire test e benchmark sulla bozza di lavoro o su altre versioni del guardrail per verificare che le configurazioni soddisfino i requisiti del caso d’uso. Modificare le configurazioni nella bozza di lavoro e provare diversi prompt per valutare l’efficacia del guardrail nell’analizzare e bloccare prompt o risposte.

Una volta soddisfatti della configurazione, è possibile creare una versione del guardrail, che funge da snapshot delle configurazioni della bozza di lavoro al momento della creazione. Le versioni possono essere utilizzate per semplificare l’implementazione dei guardrail nelle applicazioni di produzione ogni volta che vengono apportate modifiche ai guardrail. Eventuali modifiche alla bozza di lavoro o la creazione di una nuova versione non si rifletteranno nell’applicazione di IA generativa finché non verrà specificamente utilizzata la nuova versione nell’applicazione.

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

**Come testare un guardrail per vedere se blocca i contenuti dannosi**

1. Accedi a Console di gestione AWS con un'identità IAM che dispone delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock in [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. Nel riquadro di navigazione a sinistra, scegli **Guardrail**. Quindi, seleziona un guardrail nella sezione **Guardrail**.

1. Sulla destra viene visualizzata una finestra di test. Nella finestra di test sono disponibili le seguenti opzioni:

   1. Per impostazione predefinita, la bozza di lavoro del guardrail viene utilizzata nella finestra di test. Per testare una versione diversa del guardrail, scegli **Bozza di lavoro** nella parte superiore della finestra di test, quindi seleziona la versione.

   1. Scegli **Seleziona modello** per selezionare un modello. Dopo aver scelto il modello, seleziona **Applica**. Per modificare il modello, scegli **Modifica**.

   1. Immetti un prompt nella casella **Prompt**.

   1. Per ottenere una risposta del modello, seleziona **Esegui**.

   1. Il modello restituisce una risposta nella casella **Risposta finale** (che può essere modificata dal guardrail). Se il guardrail blocca o filtra il prompt o la risposta del modello, sotto **Controllo del guardrail** viene visualizzato un messaggio che indica il numero di violazioni rilevate dal guardrail.

   1. Per visualizzare gli argomenti o le categorie dannose nel prompt o nella risposta riconosciuti e consentiti oltre il filtro o bloccati da esso, seleziona **Visualizza traccia**.

   1. Utilizza le schede **Prompt** e **Risposta del modello** per visualizzare gli argomenti o le categorie dannose filtrati o bloccati dal guardrail.

Puoi anche testare il guardrail nello **Spazio di sviluppo per il testo**. Scegli il playground e seleziona **Guardrail** nel riquadro **Configurazioni** prima di testare i prompt.

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

Per utilizzare un guardrail nell'invocazione del modello, invia una richiesta or. [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) [In alternativa, se stai creando un’applicazione conversazionale, puoi utilizzare l’API Converse](guardrails-use-converse-api.md).

**Formato della richiesta**

Gli endpoint di richiesta per invocare un modello, con e senza streaming, sono i seguenti. Sostituisci {{modelId}} con l'ID del modello da utilizzare.
+ `InvokeModel`— POST /model/ /invoke {{modelId}} HTTP/1.1
+ `InvokeModelWithResponseStream`— {{modelId}} POST/modello/ invoke-with-response-stream HTTP/1.1

L’intestazione per entrambe le operazioni dell’API ha il seguente formato.

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

I parametri sono descritti di seguito.
+ Imposta `Accept` sul tipo MIME del corpo di inferenza nella risposta. Il valore predefinito è `application/json`.
+ Imposta `Content-Type` sul tipo MIME dei dati di input nella richiesta. Il valore predefinito è `application/json`.
+ Imposta `X-Amzn-Bedrock-Trace` su `ENABLED` per abilitare una traccia per vedere, tra le altre cose, quali contenuti sono stati bloccati dai guardrail e per quale motivo.
+ Imposta `X-Amzn-Bedrock-GuardrailIdentifier` con l’identificatore del guardrail che vuoi applicare alla richiesta e alla risposta del modello.
+ Imposta `X-Amzn-Bedrock-GuardrailVersion ` con la versione del guardrail che vuoi applicare alla richiesta e alla risposta del modello.

Il formato generale del corpo della richiesta è mostrato nel seguente esempio. La proprietà `tagSuffix` viene utilizzata solo con i *tag di input*. Puoi configurare il guardrail anche per lo streaming in modalità sincrona o asincrona utilizzando `streamProcessingMode`. Questa opzione funziona solo con `InvokeModelWithResponseStream`.

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

**avvertimento**  
Si verificherà un errore nelle seguenti situazioni  
Il guardrail è abilitato ma non è presente alcun campo `amazon-bedrock-guardrailConfig` nel corpo della richiesta.
Il guardrail è disabilitato ma è stato specificato un campo `amazon-bedrock-guardrailConfig` nel corpo della richiesta.
Il guardrail è abilitato ma il `contentType` non è `application/json`.

Per visualizzare il corpo della richiesta per diversi modelli, consulta [Parametri di richiesta di inferenza e campi di risposta per i modelli di fondazione](model-parameters.md).

**Nota**  
Per i modelli Cohere Command è possibile specificare una sola generazione nel campo `num_generations` se si utilizza un guardrail.

Se abilito un guardrail e la relativa traccia, il formato generale della risposta per invocare un modello, con e senza streaming, è il seguente. Per vedere il formato del resto del `body` per ogni modello, consulta [Parametri di richiesta di inferenza e campi di risposta per i modelli di fondazione](model-parameters.md). {{contentType}}Corrisponde a quanto specificato nella richiesta.
+ `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`: ogni risposta restituisce un `chunk` il cui testo è nel campo `bytes`, insieme alle eventuali eccezioni che si verificano. La traccia del guardrail viene restituita solo per l’ultimo blocco.

  ```
  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 risposta restituisce i seguenti campi se viene abilitato un guardrail.
+ `amazon-bedrock-guardrailAction`: specifica se il guardrail è `INTERVENED` o meno (`NONE`).
+ `amazon-bedrock-trace`: viene visualizzato solo se la traccia viene abilitata. Contiene un elenco di tracce, ognuna delle quali fornisce informazioni sui contenuti bloccati dal guardrail. La traccia contiene i seguenti campi:
  + `modelOutput`: oggetto contenente gli output del modello che è stato bloccato.
  + `input`: contiene i seguenti dettagli sulla valutazione dei prompt da parte del guardrail:
    + `topicPolicy`: contiene `topics`, un elenco di valutazioni per ogni policy dell’argomento che è stata violata. Ogni argomento include i seguenti campi:
      + `name`: nome della policy dell’argomento.
      + `type`: specifica se negare l’argomento.
      + `action`: specifica che l’argomento è stato bloccato 
    + `contentPolicy`: contiene `filters`, un elenco di valutazioni per ogni policy dell’argomento che è stata violata. Ogni filtro include i seguenti campi:
      + `type`: la categoria del filtro dei contenuti.
      + `confidence`: Il livello di affidabilità della classificazione dell’output come contenuto appartenente alla categoria dannosa.
      + `action`: specifica che il contenuto è stato bloccato. Questo risultato dipende dall’intensità del filtro impostato nel guardrail.
    + `wordPolicy`: contiene una raccolta di parole personalizzate e di parole gestite che sono state filtrate, con la relativa valutazione. Ogni oggetto include i seguenti campi:
      + `customWords`: elenco di parole personalizzate che corrispondono al filtro.
        + `match`: parola o frase che corrisponde al filtro.
        + `action`: specifica che la parola è stata bloccata.
      + `managedWordLists`: elenco di parole gestite che corrispondono al filtro.
        + `match`: parola o frase che corrisponde al filtro.
        + `type`: specifica il tipo di parola gestita che corrisponde al filtro. Ad esempio, `PROFANITY` se corrisponde al filtro volgarità.
        + `action`: specifica che la parola è stata bloccata.
    + `sensitiveInformationPolicy`: contiene i seguenti oggetti, che includono valutazioni per le informazioni di identificazione personale (PII) e i filtri regex che sono stati violati:
      + `piiEntities`: elenco di valutazioni per ogni filtro PII che è stato violato. Ogni filtro include i seguenti campi:
        + `type`: tipo di PII che è stato trovato.
        + `match`: parola o frase che corrisponde al filtro.
        + `action`: specifica se la parola è stata `BLOCKED` o sostituita con un identificatore (`ANONYMIZED`).
      + `regexes`: elenco di valutazioni per ogni filtro regex che è stato violato. Ogni filtro include i seguenti campi:
        + `name`: nome del filtro regex.
        + `regex`: tipo di PII che è stato trovato.
        + `match`: parola o frase che corrisponde al filtro.
        + `action`: specifica se la parola è stata `BLOCKED` o sostituita con un identificatore (`ANONYMIZED`).
  + `outputs`: elenco di dettagli sulla valutazione della risposta del modello da parte del guardrail. Ogni elemento dell’elenco è un oggetto che corrisponde al formato dell’oggetto `input`. Per ulteriori dettagli, vedere il campo `input`.

------