AI Agents · Lezione

Filtraggio dell'output (Llama Guard, NeMo)

Esegua un modello di controllo più piccolo sugli output per rilevare contenuti tossici, fughe di dati personali e violazioni delle policy prima della distribuzione.

Lezione 2 di 415 passaggi

Filtraggio dell'output (Llama Guard, NeMo) è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Perché filtrare gli output?

Anche con input sicuri, i modelli possono produrre:

  • Fughe di dati personali
  • Discorsi d'odio/molestie
  • Contenuti autolesivi
  • Chiamate a tool che violano l'intento dell'utente

Un filtro dell'output è l'ultima linea di difesa prima che l'utente possa visualizzare qualsiasi contenuto.

Llama Guard

Il classificatore di sicurezza di Meta: pesi open source e grande velocità:

from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-Guard-3-8B')
# Outputs 'safe' or 'unsafe' with category.

NeMo Guardrails

NVIDIA NeMo Guardrails: framework Python che applica controlli agli LLM:

# pip install nemoguardrails
from nemoguardrails import RailsConfig, LLMRails

config = RailsConfig.from_path('./config')
rails = LLMRails(config)
response = rails.generate(messages=[{'role': 'user', 'content': '...'}])

Guardrails AI

guardrails-ai è la libreria Python dedicata alla validazione e ai guardrail. Supporta «rails» basati su XML e cicli di riparazione reAsk.

Anthropic Constitutional Classifier

Anthropic ha rilasciato un classificatore, in aggiunta all'addestramento di sicurezza di Claude. È utile per il filtraggio post-hoc dell'output di qualsiasi modello.

Filtro personalizzato basato su LLM

La soluzione più economica: un LLM più piccolo che esamina gli output:

FILTER_PROMPT = '''
Analyse the output. Return JSON: {safe: true/false, reason: str, categories: list}

Unsafe categories: PII leak, harmful instructions, copyright violation, prompt-injection echo.

Output:
{output}
'''

result = guard_llm.invoke(FILTER_PROMPT.format(output=text))

Filtri regex/regole

Per pattern specifici, le regex sono rapide e affidabili:

import re
EMAIL_RE = re.compile(r'[\w\.-]+@[\w\.-]+')
SSN_RE = re.compile(r'\b\d{3}-\d{2}-\d{4}\b')

def has_pii(text):
    return bool(EMAIL_RE.search(text) or SSN_RE.search(text))

# --- demo ---
samples = ['Contact me at jane@example.com', 'My SSN is 123-45-6789', 'No PII in this sentence']
for s in samples:
    print(f'{s!r} -> has_pii={has_pii(s)}')

Redazione dei dati PII

Non si limiti a bloccare: a volte rediga i dati sensibili e lasci passare il resto:

def redact(text):
    text = EMAIL_RE.sub('[email]', text)
    text = SSN_RE.sub('[ssn]', text)
    return text

Filtro a due livelli

Prima le regole rapide, poi l'LLM più costoso:

def filter_output(text):
    if has_obvious_pii(text):
        return BLOCKED
    result = guard_llm.invoke(...)
    return result

Output in streaming

Per gli output in streaming, filtri una FRASE ALLA VOLTA:

buf = ''
for token in stream:
    buf += token
    if buf.endswith(('. ', '! ', '? ', '\n')):
        if not safe(buf):
            stream.close()
            emit_to_client('[content filtered]')
            break
        emit_to_client(buf)
        buf = ''

Falsi positivi e falsi negativi

Regoli il sistema per ottenere il giusto equilibrio:

  • Ambiti ad alto rischio (medico, finanziario): favorisca i falsi positivi (blocchi di più)
  • Ambiti creativi/di intrattenimento: favorisca i falsi negativi (blocchi di meno)

I log dei filtri sono sensibili

I log dei filtri contengono i contenuti bloccati. Li conservi in modo sicuro con TTL brevi:

log.warning('Blocked output', extra={'reason': r, 'category': c}, sanitize_payload=True)

Informare l'utente

Quando blocca un contenuto, spieghi all'utente il motivo, così eviterà retry ripetuti:

def handle_privacy_request():
    return 'I cannot share that information for privacy reasons.'

print(handle_privacy_request())

Filtro a più livelli

Perché combinare le regex con il filtraggio basato su LLM?

Riepilogo

Llama Guard / NeMo / filtro LLM personalizzato + regole regex. Due livelli. Rediga i dati quando possibile. Informi sempre l'utente quando un contenuto viene bloccato.

Gratis per iniziare

Impara AI Agents con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
60
Lezioni
239

Domande Frequenti

La lezione «Filtraggio dell'output (Llama Guard, NeMo)» è gratuita?

Sì — il testo completo di «Filtraggio dell'output (Llama Guard, NeMo)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Filtraggio dell'output (Llama Guard, NeMo)»?

Esegua un modello di controllo più piccolo sugli output per rilevare contenuti tossici, fughe di dati personali e violazioni delle policy prima della distribuzione. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Filtraggio dell'output (Llama Guard, NeMo)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Difese contro la prompt injection
  2. Filtraggio dell'output (Llama Guard, NeMo)
  3. Esecuzione in sandbox per agenti di codice
  4. Controllo degli accessi sugli strumenti
← Torna a AI Agents