Por que os LLMs superam a moderação baseada em regras
Sarcasmo. Apitos de cachorro. Uso indevido no contexto da marca ("Adoro este produto, mas odeio o atendimento ao cliente"). Nuances multilíngues. Combinações de imagem e legenda em que cada elemento passa sozinho, mas a combinação não. A moderação baseada em regras lida talvez com 60% dos casos de confiança e segurança. Os 40% difíceis são exatamente onde os LLMs se destacam — eles entendem contexto, intenção e a diferença entre palavras literais e significado.
Os pipelines modernos de moderação combinam os dois: regras para os 60% fáceis (regex, listas de bloqueio de URLs e CSAM identificado por hash) e LLM para os 40% que exigem julgamento.
Moderação de texto — Claude Haiku 4.5
O Haiku é barato e rápido — ideal para moderação em alto volume:
import json
from openai import OpenAI
client = OpenAI(api_key="sk-kn-...", base_url="https://api.kunavo.com/v1")
POLICY = """You are a content moderator. Judge the content against these
categories: toxic, spam, harassment, sexual, violence, self_harm, deception,
brand_unsafe. Be conservative — when in doubt, flag for human review."""
# Claude enforces a json_schema response_format; json_object it does not.
VERDICT = {
"type": "object",
"properties": {
"verdict": {"type": "string", "enum": ["allow", "review", "block"]},
"categories": {"type": "array", "items": {"type": "string", "enum": [
"toxic", "spam", "harassment", "sexual", "violence",
"self_harm", "deception", "brand_unsafe"]}},
"confidence": {"type": "number"}, # 0.0-1.0
"rationale": {"type": "string"}, # one sentence
},
"required": ["verdict", "categories", "confidence", "rationale"],
"additionalProperties": False,
}
RESPONSE_FORMAT = {"type": "json_schema",
"json_schema": {"name": "verdict", "schema": VERDICT}}
def moderate_text(text: str) -> dict:
resp = client.chat.completions.create(
model="claude-haiku-4-5", # cheap + fast for high-volume
messages=[
{"role": "system", "content": POLICY},
{"role": "user", "content": text},
],
response_format=RESPONSE_FORMAT,
max_tokens=200,
)
return json.loads(resp.choices[0].message.content)Custo por chamada: aproximadamente US$ 0,0001–0,0003, dependendo do tamanho da entrada. Em 1 milhão de eventos de moderação por mês: aproximadamente US$ 100–300. Compare com APIs comerciais de moderação (Perspective a aproximadamente US$ 0,0005/chamada, Hive a aproximadamente US$ 0,002/chamada e Sightengine a US$ 0,003/chamada): a moderação baseada em LLM tem custo comparável ou menor, com compreensão contextual muito superior.
Moderação de imagens — Claude Haiku 4.5
Para imagens, o Claude Haiku 4.5 é o modelo de visão mais barato do catálogo e rápido o suficiente para ficar no fluxo de publicação:
def moderate_image(image_url: str) -> dict:
resp = client.chat.completions.create(
model="claude-haiku-4-5", # vision + cheap
messages=[
{"role": "system", "content": POLICY},
{"role": "user", "content": [
{"type": "text", "text": "Moderate this image:"},
{"type": "image_url", "image_url": {"url": image_url}},
]},
],
response_format=RESPONSE_FORMAT,
max_tokens=200,
)
return json.loads(resp.choices[0].message.content)Custo por imagem: aproximadamente US$ 0,001–0,003. Moderação combinada de texto e imagem para plataformas sociais com 100 mil publicações por dia: aproximadamente US$ 3.000–9.000 por mês.
O padrão de veredito em três níveis
- allow: baixa confiança de qualquer violação → publicar imediatamente
- review: confiança média → colocar na fila para um moderador humano. A maioria dos vereditos de LLM fica aqui, mas é barata de revisar
- block: alta confiança de violação grave (CSAM, ameaças críveis, doxxing) → rejeitar + registrar + escalar
Não bloqueie automaticamente apenas com base no veredito de um LLM, a menos que seja uma categoria de tolerância zero. Falsos positivos custam usuários; deixe os humanos decidirem a zona cinzenta.
Comparação com alternativas
| Ferramenta | Custo / 1 milhão de chamadas | Ponto forte |
|---|---|---|
| Perspective API (Google) | Gratuita (com limite de taxa) | Pontuação de toxicidade em inglês |
| Hive Moderation | ~$2.000 | Imagem, vídeo e áudio — forte |
| Sightengine | ~$3.000 | Especialista em imagens |
| OpenAI Moderation | Gratuita | Apenas texto, categorias limitadas |
| Kunavo + Haiku | aproximadamente US$ 100–300 em texto / US$ 1.000 em imagem | Contextual + multilíngue + política personalizada |
A vantagem do LLM é a personalização da política. Hive e Sightengine oferecem categorias fixas. Com o Claude, você escreve a política em inglês (ou qualquer idioma) e ele se adapta. Adicionou uma nova categoria restrita? Atualize o prompt do sistema. Não é necessário retreinar o modelo.
Aspectos de conformidade
- DSA (Lei de Serviços Digitais da UE): exige que as plataformas publiquem relatórios de transparência da moderação. O campo rationale no JSON acima é o que você registra
- CSAM: nunca encaminhe por um LLM. Use correspondência por hash (NCMEC, IWF) — LLMs não são a ferramenta adequada para conteúdo ilegal conhecido
- PII em conteúdo moderado: faça hash ou pseudonimize antes de enviar ao LLM ao lidar com DMs/mensagens privadas — consulte o guia de conformidade
Comece: cadastro gratuito e, em seguida, leia a referência /docs/chat para saber o que response_format impõe em cada família de modelos.
Perguntas frequentes
Quanto custa cada chamada de moderação de conteúdo por IA?
Uma chamada de moderação de texto com Claude Haiku 4.5 custa cerca de US$ 0,0002; uma chamada com imagem e texto no mesmo modelo custa cerca de US$ 0,001 — valores comparáveis ou inferiores aos da Hive ou da Sightengine.
Um LLM é melhor que um sistema de moderação baseado em regras?
Para conteúdo evidente, ambos funcionam. A diferença aparece nos 40% mais difíceis — sarcasmo, mensagens codificadas, uso indevido no contexto de marcas e nuances multilíngues —, nos quais a moderação por LLM é substancialmente melhor que a baseada em regras.
Um sistema de moderação por IA deve bloquear conteúdo automaticamente?
Somente para categorias de tolerância zero. O padrão de decisão em três níveis encaminha allow para publicação, review para uma fila de revisão humana e block para rejeição e registro, deixando as zonas cinzentas a cargo das pessoas.
Como posso melhorar a precisão da moderação ao longo do tempo?
Revise semanalmente as decisões da fila de revisão humana, identifique classificações incorretas e atualize o prompt do sistema. Não é necessário retreinar o modelo.