Stf / README.md
caarleexx's picture
Update README.md
67ccdc9 verified
---
title: API BUSCA JURISPRUDENCIA STF
emoji: 📈
colorFrom: yellow
colorTo: indigo
sdk: docker
pinned: false
license: agpl-3.0
---
# ⚖️ PARA AI - Busca na Jurisprudência do STF
Aplicação web e API para pesquisa de jurisprudência no Supremo Tribunal Federal (STF). Permite buscar acórdãos e decisões monocráticas, com paginação, visualização detalhada e links para o inteiro teor.
## 🚀 Funcionalidades
- Busca textual em **ementas**, **decisões** e **acórdãos/atas**.
- Seleção das bases: **Acórdãos** e/ou **Decisões Monocráticas**.
- Paginação dos resultados (10, 20, 50 ou 100 itens por página).
- Visualização detalhada de cada documento em página própria.
- Links diretos para o inteiro teor (PDF/HTML).
- Interface responsiva e amigável.
- Cache automático de token AWS WAF (Playwright).
## 📦 Tecnologias
- Python 3.9+
- Flask (backend e templates)
- Playwright (obtenção do token)
- Requests (comunicação com a API do STF)
## 🔧 Instalação
1. Clone o repositório
2. Instale as dependências:
```bash
pip install flask playwright requests certifi urllib3
```
1. Instale os navegadores do Playwright:
```bash
playwright install chromium
```
2. Execute a aplicação:
```bash
python app.py
```
3. Acesse no navegador: https://caarleexx-stf.hf.space/
📚 Endpoints da API
GET /api/busca-multipla
Busca documentos com os filtros selecionados.
Parâmetros:
Nome Tipo Obrigatório Descrição Padrão
q string sim Termo de busca -
acordaos bool não Incluir acórdãos (true/false) true
decisoes bool não Incluir decisões monocráticas (true/false) true
page int não Número da página 1
page_size int não Resultados por página (10,20,50,100) 20
Exemplo de requisição:
```bash
curl "https://caarleexx-stf.hf.space/api/busca-multipla?q=dano%20moral&acordaos=true&decisoes=true&page=1&page_size=10"
```
Exemplo de resposta:
```json
{
"q": "dano moral",
"bases": ["acordaos", "decisoes"],
"page": 1,
"page_size": 10,
"total": 42,
"total_acordaos": 35,
"total_decisoes": 7,
"resultados": [
{
"id": "sjur123456",
"titulo": "RE 123456 AgR",
"processo": "RE 123456 AgR",
"relator": "MIN. NOME",
"orgao": "Segunda Turma",
"data": "2023-01-15",
"publicacao": "2023-02-10",
"ementa": "EMENTA: ...",
"decisao_texto": "...",
"acordao_ata": "...",
"url_documento": "https://portal.stf.jus.br/jurisprudencia/obterInteiroTeor.asp?idDocumento=...",
"base": "acordaos",
"score": 12.34
}
]
}
```
GET /api/documento/<doc_id>
Retorna os dados completos de um documento específico.
Exemplo:
```bash
curl "http://localhost:7860/api/documento/sjur123456"
```
Resposta similar ao item individual do endpoint anterior.
GET /api/health
Verifica o status da aplicação e do token.
Exemplo:
```json
{
"status": "healthy",
"playwright_ready": true,
"token_cached": true
}
```
🌐 Interface Web
Acesse a raiz (/) para utilizar a interface gráfica.
· Selecione as bases desejadas.
· Digite os termos de busca.
· Clique em PESQUISAR ou pressione Enter.
· Navegue pelos resultados com os botões de paginação.
· Clique em "Ver detalhes completos" para abrir a página individual.
· Use os links "Inteiro teor" para acessar o documento original no site do STF.
⚙️ Configuração de ambiente
Variável Descrição Padrão
PORT Porta do servidor Flask 7860
📝 Notas
· O token AWS WAF é obtido automaticamente via Playwright e armazenado em cache por 10 minutos.
· Em caso de falha de token, a aplicação tenta renová-lo automaticamente uma vez.
· A API do STF utilizada é https://jurisprudencia.stf.jus.br/api/search/search.
📄 Licença
Este projeto é de código aberto. Sinta-se à vontade para contribuir.
---
Desenvolvido por PARA AI - convergent law technologies.