Testare il guardrail - Amazon Bedrock

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

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 alla Console di gestione AWS con un’identità IAM che disponga delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock all’indirizzo https://console.aws.amazon.com/bedrock.

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

  3. 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.

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

    3. Immetti un prompt nella casella Prompt.

    4. Per ottenere una risposta del modello, seleziona Esegui.

    5. 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.

    6. 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.

    7. 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 InvokeModel o InvokeModelWithResponseStream. In alternativa, se stai creando un’applicazione conversazionale, puoi utilizzare l’API Converse.

Formato della richiesta

Gli endpoint di richiesta per invocare un modello, con e senza streaming, sono i seguenti. Sostituisci modelId con l’ID modello da utilizzare.

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

  • InvokeModelWithResponseStream: POST /model/modelId/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.

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. Il contentType corrisponde a quello 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.