Filtragem de saídas (Llama Guard, NeMo)
Execute um modelo de proteção menor sobre as saídas para detectar toxicidade, vazamentos de PII e violações de políticas antes da publicação.
Filtragem de saídas (Llama Guard, NeMo) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Por que Filtrar as Saídas?
Mesmo com entradas seguras, os modelos podem produzir:
- Vazamentos de dados pessoais
- Discurso de ódio / assédio
- Conteúdo de automutilação
- Chamadas de ferramentas que violam a intenção do usuário
Um filtro de saída é sua última linha de defesa antes que o usuário veja qualquer coisa.
Llama Guard
Classificador de segurança da Meta — pesos abertos, muito rápido:
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 — estrutura Python que envolve LLMs com verificações:
# 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 é a biblioteca Python focada em validação e proteções. Ela oferece “trilhos” baseados em XML e ciclos de reparo reAsk.
Classificador Constitucional da Anthropic
A Anthropic lançou um classificador (além do treinamento de segurança do Claude). É útil para a filtragem posterior de qualquer saída de modelo.
Filtro Baseado em LLM Personalizado
Caminho mais barato: um LLM menor que examina as saídas:
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))Filtros de Expressões Regulares / Regras
Para padrões específicos, expressões regulares são rápidas e confiáveis:
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)}')
Ocultação de PII
Não bloqueie simplesmente — às vezes oculte dados e deixe o restante passar:
def redact(text):
text = EMAIL_RE.sub('[email]', text)
text = SSN_RE.sub('[ssn]', text)
return textFiltro em Duas Camadas
Regras rápidas primeiro, LLM caro depois:
def filter_output(text):
if has_obvious_pii(text):
return BLOCKED
result = guard_llm.invoke(...)
return resultTransmissão de Saídas
Para saídas transmitidas, filtre SENTENCE-BY-SENTENCE:
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 = ''Falsos Positivos vs Falsos Negativos
Ajuste o sistema para obter o equilíbrio correto:
- Áreas de alto risco (médica, financeira): prefira falsos positivos (bloqueie mais)
- Criatividade/entretenimento: prefira falsos negativos (bloqueie menos)
Os Registros do Filtro são Sensíveis
Os registros do filtro contêm o conteúdo bloqueado. Armazene-os com segurança e tempos de expiração curtos:
log.warning('Blocked output', extra={'reason': r, 'category': c}, sanitize_payload=True)Oriente o Usuário
Ao bloquear, explique ao usuário o motivo para que ele não repita tentativas excessivamente:
def handle_privacy_request():
return 'I cannot share that information for privacy reasons.'
print(handle_privacy_request())Filtro em Múltiplas Camadas
Por que combinar expressões regulares com filtragem baseada em LLM?
Recapitulação
Llama Guard / NeMo / filtro LLM personalizado + regras de expressões regulares. Duas camadas. Oculte dados quando possível. Sempre informe ao usuário quando o conteúdo for bloqueado.
Perguntas Frequentes
A aula “Filtragem de saídas (Llama Guard, NeMo)” é grátis?
Sim — o texto completo de “Filtragem de saídas (Llama Guard, NeMo)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Filtragem de saídas (Llama Guard, NeMo)”?
Execute um modelo de proteção menor sobre as saídas para detectar toxicidade, vazamentos de PII e violações de políticas antes da publicação. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Filtragem de saídas (Llama Guard, NeMo)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Defesas contra injeção de prompt
- Filtragem de saídas (Llama Guard, NeMo)
- Execução em ambiente isolado para agentes de código
- Controle de acesso às ferramentas