tutorial

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-70b via Tokia → roteia OpenRouter Singapore por default
  • Tokia em si NÃO armazena prompts (gateway transparente)
  • Logs internos seu mascaram prompt cru (promptHash em 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:

  1. 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).
  2. Não compartilhe dado de cliente sem consentimento em prompts.
  3. Não use IA pra parecer formal sem indicar que houve assistência.
  4. 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

  1. Cria conta Tokia + R$ 10 PIX
  2. Copia o código Python acima
  3. Roda em 5 PDFs de processos seus (não-sensíveis) pra testar
  4. Adiciona anonimização ANTES de qualquer IA call
  5. Mede tempo economizado em 1 semana → escala

Cria conta com R$ 10 PIX →


Posts relacionados:

#advocacia#juridico#claude-sonnet#lgpd#advogado-autonomo

Quer testar Tokia com R$ 10 via PIX?

Criar conta grátis →