IA pra advogado: análise de petições + jurisprudência reduz 4h/semana de leitura
Setup técnico real de advogado autônomo Brasília-DF: Claude Sonnet 4.6 lê PDFs de processos + cruza com STJ/STF via Tokia. Custo R$ 30/mês. Inclui prompts, código e LGPD compliance.
Caso real (sob NDA): advogado autônomo em Brasília-DF, área cível + trabalhista. Antes: 4-6h/semana lendo petições + buscando jurisprudência manual. Depois: Claude Sonnet 4.6 via Tokia faz triagem + resumo. Custo R$ 30/mês. Quote: "Reduzi 4h/semana de leitura. Pago R$ 30 de IA. Vale 50x mais."
Esse post mostra setup técnico que não requer time de dev — script Python de ~100 linhas que você roda local + sobe pra VPS quando crescer.
O que IA faz bem na advocacia (e o que NÃO faz)
✅ IA faz bem
- Resumir petições longas (60 páginas → 1 página de bullets)
- Extrair info estruturada (partes, valor, prazos, fundamento legal)
- Comparar com jurisprudência quando você fornece os acórdãos
- Sugerir argumentação baseada em casos análogos
- Revisar texto seu apontando inconsistências/lacunas
- Tradução jurídica PT/EN/ES pra clientes internacionais
❌ IA NÃO faz (sem supervisão humana)
- Decisão final: protocolar/não protocolar é DECISÃO sua
- Pesquisa de jurisprudência em tempo real: IA tem cutoff de data, não busca STJ/STF live (você faz scraping ou usa Jusbrasil API)
- Citação de artigo de lei: sempre confere, IA inventa numero quando não sabe (hallucination)
- Análise de risco específico: contexto local do juiz/vara importa
- Trabalho considerado privativo (OAB): peça assinada, parecer formal
Stack mínima (Python local, 1 hora setup)
# requirements.txt
openai==1.50.0 # SDK Tokia (compatível)
pypdf==4.3.0 # extrair texto PDF
python-dotenv==1.0.0 # carrega .env
# main.py
import os
from openai import OpenAI
from pypdf import PdfReader
client = OpenAI(
base_url="https://api.usetokia.com/v1",
api_key=os.environ["TOKIA_API_KEY"],
)
def extrair_pdf(caminho: str) -> str:
reader = PdfReader(caminho)
return "\n\n".join(p.extract_text() for p in reader.pages)
def resumir_peticao(texto: str) -> dict:
response = client.chat.completions.create(
model="claude-sonnet-46",
messages=[
{
"role": "system",
"content": SYSTEM_PROMPT_RESUMO,
},
{
"role": "user",
"content": texto[:120_000], # limita pra context window
},
],
response_format={"type": "json_object"},
max_tokens=2000,
)
return json.loads(response.choices[0].message.content)
# Uso
texto = extrair_pdf("processo-12345.pdf")
resumo = resumir_peticao(texto)
print(json.dumps(resumo, indent=2, ensure_ascii=False))
System prompt que funciona (refinado em 6 meses)
SYSTEM_PROMPT_RESUMO = """Você é assistente jurídico pra advogado brasileiro.
Sua tarefa: ler petição inicial / contestação / acórdão / outra peça
processual e retornar JSON estruturado com:
{
"tipo_peca": "petição inicial | contestação | acórdão | sentença | ...",
"partes": {
"autor": "nome + CPF/CNPJ se mencionado",
"reu": "nome + CPF/CNPJ se mencionado",
"advogados": ["nome OAB/UF número"]
},
"valor_causa": "número ou 'não atribuído'",
"vara": "vara/comarca/foro",
"numero_processo": "CNJ format",
"objeto": "1 frase descrevendo o que pedem",
"fundamento_legal": ["CC art. 186", "CDC art. 14", ...],
"pedidos": [
{"tipo": "indenização moral", "valor": "R$ 10.000"},
{"tipo": "tutela urgente", "descricao": "..."},
...
],
"fatos_principais": [
"1 bullet por fato relevante (max 5 bullets)"
],
"argumentos_chave": [
"1 bullet por argumento do autor/réu (max 8 bullets)"
],
"jurisprudencia_citada": [
{"tribunal": "STJ", "numero": "REsp 1.234.567/SP", "relator": "Min. X"}
],
"prazos_mencionados": ["15 dias contestação", "..."],
"pontos_de_atencao": [
"qualquer coisa que advogado deveria notar (nulidade, prescrição, etc)"
],
"qualidade_redacao": "1-5 (1 muito ruim, 5 excelente)"
}
REGRAS:
- Use SÓ informação que está no texto. Se faltar, escreve "não consta no texto".
- Anonimize CPF nos partes: troca por "XXX.XXX.XXX-XX" no JSON.
- Não invente número de artigo de lei. Se não tem certeza, "verificar".
- Tom: técnico-objetivo, sem floreios.
"""
Cruzar com jurisprudência (workflow completo)
def comparar_com_jurisprudencia(resumo_peticao: dict, acordaos_db: list[str]) -> str:
"""
acordaos_db é lista de textos de acórdãos pesquisados pelo advogado
(você faz scraping STJ/STF/TJ ou usa Jusbrasil API).
"""
texto_acordaos = "\n\n---\n\n".join(acordaos_db[:5])
response = client.chat.completions.create(
model="claude-sonnet-46",
messages=[
{
"role": "system",
"content": (
"Você é assistente jurídico. Vou te dar 1 petição (já "
"resumida em JSON) + N acórdãos relacionados. Analise:"
"\n1. Quais acórdãos favorecem o autor?"
"\n2. Quais favorecem o réu?"
"\n3. Qual a tese vencedora majoritária?"
"\n4. Quais argumentos NÃO foram explorados na petição mas "
"poderiam ser?"
"\nResposta em markdown, máximo 800 palavras."
),
},
{
"role": "user",
"content": f"PETIÇÃO RESUMIDA:\n{json.dumps(resumo_peticao, ensure_ascii=False)}\n\nACÓRDÃOS:\n{texto_acordaos}",
},
],
max_tokens=1500,
)
return response.choices[0].message.content
LGPD compliance — checklist obrigatório
Você processa dado pessoal (CPF cliente, processo, partes). 3 obrigações:
1. Anonimização antes de chamar IA
Antes de mandar texto da petição pro modelo, mascarar CPF/RG/contas bancárias:
import re
def anonimizar(texto: str) -> str:
# CPF: 123.456.789-00 ou 12345678900
texto = re.sub(r"\b\d{3}\.?\d{3}\.?\d{3}-?\d{2}\b", "[CPF]", texto)
# CNPJ
texto = re.sub(r"\b\d{2}\.?\d{3}\.?\d{3}/?\d{4}-?\d{2}\b", "[CNPJ]", texto)
# Conta bancária comum (5+ dígitos)
texto = re.sub(r"\b(?:c\.?c\.?|conta corrente)[:.]?\s*(\d{4,}-?\d{0,2})\b",
r"[CONTA]", texto, flags=re.I)
# Email
texto = re.sub(r"\b[\w.+-]+@[\w-]+\.[\w.-]+\b", "[EMAIL]", texto)
return texto
# Uso
texto_anonimo = anonimizar(extrair_pdf("processo.pdf"))
resumo = resumir_peticao(texto_anonimo)
2. Data residency
- Claude (Anthropic) processa nos EUA. Pra cliente que exige BR/EU:
Use
llama-3-3-70bvia Tokia → roteia OpenRouter Singapore por default - Tokia em si NÃO armazena prompts (gateway transparente)
- Logs internos seu mascaram prompt cru (
promptHashem vez de texto)
3. Contrato cliente — cláusula obrigatória
"Para análise de peças processuais, o ESCRITÓRIO autoriza-se a utilizar ferramentas de inteligência artificial (provedores listados em [Anexo X]). Os dados pessoais inseridos serão anonimizados antes do envio (CPF/CNPJ/contas bancárias mascarados via regex). A base legal é execução de contrato (LGPD art. 7º, V) somada a legítimo interesse (art. 7º, IX) na melhoria do serviço. O CLIENTE pode solicitar a não-utilização de IA a qualquer momento, sem ônus."
Custos reais — 200 peças/mês
| Item | Cálculo | Valor | |---|---|---| | Tokia Claude Sonnet 4.6 | 200 peças × 30k tokens × $3/1M × 5.0 BRL × 1.5x markup | R$ 27 | | Tokia embeddings (RAG futuro) | Opcional | R$ 0-3 | | Jusbrasil API (jurisprudência) | Plano free | R$ 0 | | Python rodando local | Não precisa VPS | R$ 0 | | Total mensal | | R$ 30/mês |
Compare: 1 estagiário de direito custa R$ 1.500-2.000/mês fazendo o mesmo trabalho (resumo, busca jurisprudência básica). Economia 98% + bot é 24/7 + sem férias.
Limites éticos (importante)
A OAB tem código de ética. Algumas práticas a EVITAR:
- Não use IA pra peças que vão pra protocolo sem revisão humana. Se IA inventar artigo, OAB pode penalizar você (não a IA).
- Não compartilhe dado de cliente sem consentimento em prompts.
- Não use IA pra parecer formal sem indicar que houve assistência.
- Não terceirize "criação de tese" — IA é assistente, decisão é sua.
Tendência: 2026-2027
OAB SP soltou em 2024 enunciado dizendo que IA é ferramenta — não substitui advogado mas é admitida. Tribunais começam aceitar petições auxiliadas (TJSP, TRF1). Vantagem competitiva real pra advogado pequeno que adota cedo.
Próximos passos
- Cria conta Tokia + R$ 10 PIX
- Copia o código Python acima
- Roda em 5 PDFs de processos seus (não-sensíveis) pra testar
- Adiciona anonimização ANTES de qualquer IA call
- Mede tempo economizado em 1 semana → escala
Posts relacionados:
Quer testar Tokia com R$ 10 via PIX?
Criar conta grátis →