Sistema Completo de Busca Jurisprudencial com IA
Integração entre DataJud CNJ e OpenAI Agents para pesquisa inteligente de jurisprudências
Demonstração • Instalação • Uso • API • Deploy
- Sobre o Projeto
- Arquitetura
- Funcionalidades
- Tecnologias
- Instalação
- Configuração
- Uso
- Documentação da API
- Agente OpenAI
- Deploy
- Estrutura do Projeto
- Exemplos
- Licença
O DataJud API Agent é uma solução completa que conecta a API pública do DataJud (CNJ - Conselho Nacional de Justiça) com agentes inteligentes da OpenAI. O sistema permite buscar jurisprudências de forma natural e conversacional, retornando resultados estruturados e prontos para uso.
Advogados e profissionais do direito frequentemente precisam:
- ✅ Buscar jurisprudências relevantes em múltiplos tribunais
- ✅ Extrair informações específicas de acórdãos
- ✅ Formatar citações segundo normas CNJ
- ✅ Analisar padrões em decisões judiciais
Este projeto automatiza e simplifica essas tarefas usando IA.
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Cliente │───▶│ OpenAI │───▶│ Backend │
│ (Usuário) │ │ Agent │ │ FastAPI │
└─────────────┘ └──────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ DataJud │
│ API (CNJ) │
└─────────────┘
-
Backend FastAPI (
api_datajud.py)- API RESTful para busca de jurisprudências
- Integração com DataJud CNJ
- CORS habilitado para integração
- Deploy no Render.com (https://datajud-api-agent.onrender.com)
-
Agente OpenAI
- Processamento de linguagem natural
- Extração inteligente de informações
- Formatação automática JSON
- Widget personalizado "Ementa CNJ"
-
Scripts de Demonstração
demo_agente.py: Exemplo completo com SDK OpenAIteste_simples.py: Testes sem dependências do SDK
✅ Busca por termo livre: Pesquisa em ementas e decisões
✅ Filtro por tribunal: TJSP, TJRJ, TJMG
✅ Busca por número de processo: CNJ (20 dígitos)
✅ Filtro por classe processual: Apelação, Agravo, etc.
✅ Limitação de resultados: Até 50 resultados por consulta
✅ 20+ campos estruturados: Dados completos dos processos
✅ Linguagem natural: Perguntas em português coloquial
✅ Análise inteligente: Entende contexto jurídico
✅ Formatação automática: JSON estruturado CNJ
✅ Citações formatadas: Padrão ABNT/CNJ
✅ Exatamente 5 resultados: Otimizado para análise
- Python 3.9+ - Linguagem principal
- FastAPI - Framework web moderno
- Uvicorn - Servidor ASGI
- Requests - Cliente HTTP
- Render.com - Hospedagem do backend
- DataJud CNJ - API de jurisprudências
- OpenAI Platform - Agentes IA
- Python 3.9 ou superior
- pip (gerenciador de pacotes Python)
- Conta OpenAI com API Key
- Git
- Clone o repositório
git clone https://github.com/xav369/datajud-api-agent.git
cd datajud-api-agent- Crie um ambiente virtual (recomendado)
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate- Instale as dependências
pip install -r requirements.txt- Configure as variáveis de ambiente
Crie um arquivo .env na raiz do projeto:
OPENAI_API_KEY=sua-chave-aquiuvicorn api_datajud:app --reloadA API estará disponível em: http://localhost:8000
- Acesse OpenAI Platform
- Crie um novo Agent
- Configure a função personalizada:
Nome: buscar_jurisprudencia_datajud
URL da API: https://datajud-api-agent.onrender.com/api/buscar_jurisprudencia_datajud
Parâmetros:
termo_busca(string, opcional)tribunal(string, padrão: "TJSP")numero_processo(string, opcional)classe_processual(string, opcional)tamanho(integer, padrão: 10)
- Cole as instruções do agente (veja seção Agente OpenAI)
import requests
url = "https://datajud-api-agent.onrender.com/api/buscar_jurisprudencia_datajud"
data = {
"termo_busca": "plano de saúde recusa cobertura",
"tribunal": "TJSP",
"tamanho": 5
}
response = requests.post(url, json=data)
print(response.json())Veja o arquivo demo_agente.py para exemplo completo.
from openai import OpenAI
client = OpenAI(api_key="sua-chave")
response = client.agents.run(
agent_id="seu-agent-id",
input="Busque 5 jurisprudências do TJSP sobre plano de saúde"
)
print(response)python teste_simples.pyPOST /api/buscar_jurisprudencia_datajud
{
"termo_busca": "string (opcional)",
"tribunal": "TJSP|TJRJ|TJMG (padrão: TJSP)",
"numero_processo": "string (opcional)",
"classe_processual": "string (opcional)",
"tamanho": "integer (padrão: 10, máximo: 50)"
}{
"total": 5,
"processos": [
{
"id": "identificador-unico",
"numeroProcesso": "1001234-00.2023.8.26.0100",
"tribunal": "TJSP",
"classe": "Apelação Cível",
"codigoClasse": "198",
"assunto": "Planos de Saúde",
"dataAjuizamento": "10.01.2023",
"dataJulgamento": "11.09.2024",
"dataPublicacao": "20.09.2024",
"orgaoJulgador": "5ª Câmara de Direito Privado",
"codigoOrgao": "5",
"relator": "Des. João Silva",
"ementa": "texto completo da ementa...",
"decisao": "texto da decisão...",
"observacao": "observações...",
"tipoDecisao": "Acórdão",
"resultadoJulgamento": "Não provido",
"valorCausa": "50000.00",
"grau": "2",
"instancia": "Segunda Instância",
"sistema": "PJE",
"formato": "Eletrônico",
"citacao": "(TJSP, Apelação Cível n.º 1001234-00.2023.8.26.0100, 5ª Câmara de Direito Privado, Rel. Des. João Silva, j. 11.09.2024, publ. 20.09.2024)"
}
]
}GET /health
Response: {"status": "healthy"}
O agente é configurado com as seguintes instruções detalhadas:
Assuma o papel de um advogado com mais de 25 anos de experiência, especializado na busca de jurisprudência nos seguintes tribunais: TJSP, TJRJ, STJ, STF, TRT15, TRT2, TST, TNU e TRF3.
Siga sempre o seguinte procedimento:
1. Compreenda detalhadamente a solicitação do usuário
2. Use SEMPRE a ferramenta buscar_jurisprudencia_datajud com parâmetro tamanho=5
3. Apresente os resultados SEMPRE no formato JSON específico do widget "Ementa CNJ"
## FORMATO DE RESPOSTA OBRIGATÓRIO
Você DEVE retornar os dados no seguinte formato JSON com TODOS OS CAMPOS DISPONÍVEIS:
[Cole aqui o JSON completo do arquivo api_datajud.py linhas 78-136]
- Model:
gpt-4o-mini - Tools:
buscar_jurisprudencia_datajud(custom)- Web Search
- Output Format: Widget "Ementa CNJ"
- Include Chat History: Habilitado
O projeto já está configurado para deploy automático no Render.com:
- Fork este repositório
- Crie uma conta no Render.com
- Crie um novo Web Service
- Connect Your Repository
- Selecione este repositório
- Configure:
- Build Command:
pip install -r requirements.txt - Start Command:
uvicorn api_datajud:app --host 0.0.0.0 --port $PORT - Plan: Free
- Region: Oregon (US West)
- Build Command:
- Deploy!
A URL será gerada automaticamente: https://seu-servico.onrender.com
- Configure a função com a URL do seu deploy
- Publique o agente
- Use via SDK ou Chat Interface
datajud-api-agent/
├── .gitignore # Arquivos ignorados pelo Git
├── README.md # Este arquivo
├── requirements.txt # Dependências Python
├── api_datajud.py # Backend FastAPI principal
├── demo_agente.py # Exemplo com OpenAI SDK
└── teste_simples.py # Testes básicos
Backend FastAPI com:
- Endpoint POST para busca
- Integração DataJud CNJ
- Tratamento de erros
- CORS habilitado
- 20+ campos estruturados
Script de demonstração completo com:
- Configuração do cliente OpenAI
- Chamadas ao agente
- Tratamento de respostas
- Exemplos de uso
Testes sem SDK:
- Chamadas diretas à API
- Validação de respostas
- Exemplos de parâmetros
data = {
"termo_busca": "responsabilidade civil dano moral",
"tribunal": "TJSP",
"tamanho": 5
}data = {
"numero_processo": "1001234-00.2023.8.26.0100",
"tribunal": "TJSP"
}"Busque jurisprudências do TJSP dos últimos 2 anos sobre recusa de plano de saúde em cirurgias de urgência"
O agente automaticamente:
- Identifica os parâmetros relevantes
- Chama a API com
termo_busca="plano saúde recusa urgência" - Retorna 5 resultados formatados em JSON
✅ Backend FastAPI - Funcional
✅ Integração DataJud CNJ - Funcional
✅ Agente OpenAI - Funcional
✅ Deploy Render.com - Ativo
✅ Widget Ementa CNJ - Configurado
- Suporte a mais tribunais (TRF, TST, TRT)
- Cache de consultas frequentes
- Interface web frontend
- Autenticação API
- Análise estatística de decisões
- Export para PDF/Word
- Backend API: https://datajud-api-agent.onrender.com
- DataJud CNJ: https://datajud.cnj.jus.br
- OpenAI Platform: https://platform.openai.com
- Documentação FastAPI: https://fastapi.tiangolo.com
- Render.com: https://render.com
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Xavier Ferreira
📧 Email: [email protected]
🔗 GitHub: @xav369
Contribuições são sempre bem-vindas!
- Faça um Fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Se este projeto foi útil para você, considere dar uma ⭐ no repositório!
- ✅ Backend FastAPI com integração DataJud CNJ
- ✅ Agente OpenAI com widget personalizado
- ✅ 20+ campos estruturados nas respostas
- ✅ Scripts de demonstração e testes
- ✅ Deploy automático no Render.com
- ✅ Documentação completa
Desenvolvido com ❤️ para a comunidade jurídica brasileira
🏛️ DataJud API Agent 🤖