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à.
Includi un guardrail con l'API Converse
Puoi usare un guardrail per proteggere le app conversazionali che crei con l'API Converse. Ad esempio, se crei un'app di chat con Converse API, puoi utilizzare un guardrail per bloccare i contenuti inappropriati inseriti dall'utente e i contenuti inappropriati generati dal modello. Per informazioni sull'API Converse, consulta Effettua una conversazione con le operazioni dell'ConverseAPI.
Argomenti
Chiama l'API con Converse guardrails
Per utilizzare un guardrail, includi le informazioni di configurazione del guardrail nelle chiamate alle Converse o ConverseStream(per le risposte in streaming) nelle operazioni. Facoltativamente, puoi selezionare contenuti specifici del messaggio che desideri vengano valutati dal guardrail. Per informazioni sui modelli che è possibile utilizzare con i guardrail e l'ConverseAPI, consulta. Modelli e caratteristiche del modello supportati
Argomenti
Configura un guardrail per funzionare con l'API Converse
Le informazioni di configurazione di guardrai vengono specificate nel parametro di guardrailConfig
input. La configurazione include l'ID e la versione del guardrail che si desidera utilizzare. Puoi anche abilitare il tracciamento per il guardrail, che fornisce informazioni sul contenuto bloccato dal guardrail.
Con l'Converse
operazione, guardrailConfig
è un GuardrailConfigurationoggetto, come illustrato nell'esempio seguente.
{ "guardrailIdentifier": "
Guardrail ID
", "guardrailVersion": "Guardrail version
", "trace": "enabled" }
Se lo usiConverseStream
, passi un GuardrailStreamConfigurationoggetto. Facoltativamente, è possibile utilizzare il streamProcessingMode
campo per specificare che si desidera che il modello completi la valutazione del guardrail, prima di restituire blocchi di risposta in streaming. In alternativa, potete fare in modo che il modello risponda in modo asincrono mentre il guardrail continua la sua valutazione in background. Per ulteriori informazioni, consulta Configura il comportamento di risposta in streaming per filtrare i contenuti.
Valuta solo il contenuto specifico di un messaggio
Quando passi un messaggio a un modello, il guardrail valuta il contenuto del messaggio. Puoi anche valutare parti specifiche di un messaggio utilizzando il campo guardContent
(GuardrailConverseContentBlock).
Suggerimento
L'uso del guardContent
campo è simile all'utilizzo dei tag di input con InvokeModele InvokeModelWithResponseStream. Per ulteriori informazioni, consulta Applica tag all'input dell'utente per filtrare i contenuti.
Ad esempio, il guardrail seguente valuta solo il contenuto del guardContent
campo e non il resto del messaggio. Ciò è utile per fare in modo che il guardrail valuti solo il messaggio più recente di una conversazione, come mostrato nell'esempio seguente.
[ { "role": "user", "content": [ { "text": "Create a playlist of 2 pop songs." } ] }, { "role": "assistant", "content": [ { "text": "Sure! Here are two pop songs:\n1. \"Bad Habits\" by Ed Sheeran\n2. \"All Of The Lights\" by Kanye West\n\nWould you like to add any more songs to this playlist?" } ] }, { "role": "user", "content": [ { "guardContent": { "text": { "text": "Create a playlist of 2 heavy metal songs." } } } ] } ]
Un altro caso d'uso guardContent
consiste nel fornire un contesto aggiuntivo per un messaggio senza che il guardrail valuti tale contesto. Nell'esempio seguente, il guardrail valuta e ignora solo il. "Create a playlist of heavy metal songs"
"Only answer with a list of songs"
messages = [ { "role": "user", "content": [ { "text": "Only answer with a list of songs." }, { "guardContent": { "text": { "text": "Create a playlist of heavy metal songs." } } } ] } ]
Se il contenuto non si trova in un guardContent
blocco, ciò non significa necessariamente che non verrà valutato. Questo comportamento dipende dai criteri di filtraggio utilizzati dal guardrail.
L'esempio seguente mostra due guardContent
blocchi con controlli di messa a terra contestuali (basati sui campi). qualifiers
I controlli contestuali di messa a terra nel guardrail valuteranno solo il contenuto di questi blocchi. Tuttavia, se il guardrail ha anche un filtro di parole che blocca la parola «sfondo», il testo «Alcune informazioni di base aggiuntive». verrà comunque valutato, anche se non si trova in un guardContent
blocco.
[{ "role": "user", "content": [{ "guardContent": { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan.", "qualifiers": ["grounding_source"] } } }, { "text": "Some additional background information." }, { "guardContent": { "text": { "text": "What is the capital of Japan?", "qualifiers": ["query"] } } } ] }]
Protezione di un prompt di sistema inviato all'API Converse
Puoi usare guardrails con i prompt di sistema che invii all'API. Converse Per proteggere un prompt di sistema, specificate il campo guardContent
(SystemContentBlock) nel prompt di sistema che passate all'API, come mostrato nell'esempio seguente.
[ { "guardContent": { "text": { "text": "Only respond with Welsh heavy metal songs." } } } ]
Se non fornite il guardContent
campo, il guardrail non valuta il messaggio di prompt del sistema.
Comportamento del guardrail del messaggio e del prompt del sistema
Il modo in cui il guardContent
campo guardrail valuta si comporta in modo diverso tra i prompt di sistema e i messaggi trasmessi nel messaggio.
Il prompt di sistema ha un blocco guardrail | Il prompt di sistema non ha un blocco guardrail | |
---|---|---|
I messaggi hanno un blocco guardrail |
Sistema: Guardrail esamina il contenuto del blocco di guardrail Messaggi: Guardrail esamina il contenuto del blocco guardrail |
Sistema: Guardrail non indaga su nulla Messaggi: Guardrail esamina il contenuto del blocco guardrail |
I messaggi non hanno un blocco guardrail |
Sistema: Guardrail esamina il contenuto del blocco guardrail Messaggi: Guardrail indaga su tutto |
Sistema: Guardrail non indaga su nulla Messaggi: Guardrail indaga su tutto |
Elaborazione della risposta quando si utilizza l'API Converse
Quando richiami l'operazione Converse, il guardrail valuta il messaggio che invii. Se il guardrail rileva contenuti bloccati, accade quanto segue.
Il
stopReason
campo nella risposta è impostato su.guardrail_intervened
-
Se hai abilitato la traccia, la traccia è disponibile nel campo
trace
(ConverseTrace). ConConverseStream
, la traccia si trova nei metadati (ConverseStreamMetadataEvent) restituiti dall'operazione. -
Il testo del contenuto bloccato che hai configurato nel guardrail viene restituito nel campo
output
(ConverseOutput). ConConverseStream
il contenuto bloccato, il testo viene inserito nel messaggio in streaming.
La seguente risposta parziale mostra il testo del contenuto bloccato e la traccia della valutazione del guardrail. Il guardrail ha bloccato il termine Heavy metal nel messaggio.
{ "output": { "message": { "role": "assistant", "content": [ { "text": "Sorry, I can't answer questions about heavy metal music." } ] } }, "stopReason": "guardrail_intervened", "usage": { "inputTokens": 0, "outputTokens": 0, "totalTokens": 0 }, "metrics": { "latencyMs": 721 }, "trace": { "guardrail": { "inputAssessment": { "3o06191495ze": { "topicPolicy": { "topics": [ { "name": "Heavy metal", "type": "DENY", "action": "BLOCKED" } ] }, "invocationMetrics": { "guardrailProcessingLatency": 240, "usage": { "topicPolicyUnits": 1, "contentPolicyUnits": 0, "wordPolicyUnits": 0, "sensitiveInformationPolicyUnits": 0, "sensitiveInformationPolicyFreeUnits": 0, "contextualGroundingPolicyUnits": 0 }, "guardrailCoverage": { "textCharacters": { "guarded": 39, "total": 72 } } } } } } } }
Esempio di codice per l'utilizzo dell'ConverseAPI con guardrail
Questo esempio mostra come proteggere una conversazione con le ConverseStream
operazioni Converse
and. L'esempio mostra come impedire a una modella di creare una playlist che include brani del genere heavy metal.
Per proteggere una conversazione
-
Crea un guardrail seguendo le istruzioni inCrea il tuo guardrail .
-
Nome: inserisci Heavy metal.
-
Definizione per argomento: inserisci Evita di menzionare canzoni che appartengono al genere musicale heavy metal.
-
Aggiungi frasi di esempio: entra Crea una playlist di canzoni heavy metal.
Nel passaggio 9, inserisci quanto segue:
-
Messaggi visualizzati per le richieste bloccate: inserisci Mi dispiace, non posso rispondere a domande sulla musica heavy metal.
-
Messaggi per risposte bloccate: inserisci Scusa, il modello ha generato una risposta che menzionava la musica heavy metal.
È possibile configurare altre opzioni di guardrail, ma non è necessario per questo esempio.
-
-
Crea una versione del guardrail seguendo le istruzioni riportate in. Crea una versione di un guardrail
-
Nei seguenti esempi di codice (Converse e ConverseStream), imposta le seguenti variabili:
guardrail_id
— L'ID del guardrail che hai creato nel passaggio 1.guardrail_version
— La versione del guardrail che hai creato nel passaggio 2.text
— UsaCreate a playlist of heavy metal songs.
-
Esegui gli esempi di codice. L'output dovrebbe mostrare la valutazione del guardrail e il messaggio
Text: Sorry, I can't answer questions about heavy metal music.
di output. La valutazione dell'input del guardrail mostra che il modello ha rilevato il termine metallo pesante nel messaggio di input. -
(Facoltativo) Verifica che il guardrail blocchi il testo inappropriato generato dal modello modificando il valore di Elenca tutti i generi di
text
musica rock. . Esegui nuovamente gli esempi. Dovresti vedere una valutazione dell'output nella risposta.