Update README.md
Browse files
README.md
CHANGED
|
@@ -6,4 +6,151 @@ colorTo: indigo
|
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
| 8 |
license: agpl-3.0
|
| 9 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
| 8 |
license: agpl-3.0
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# ⚖️ PARA AI - Busca na Jurisprudência do STF
|
| 12 |
+
|
| 13 |
+
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.
|
| 14 |
+
|
| 15 |
+
## 🚀 Funcionalidades
|
| 16 |
+
|
| 17 |
+
- Busca textual em **ementas**, **decisões** e **acórdãos/atas**.
|
| 18 |
+
- Seleção das bases: **Acórdãos** e/ou **Decisões Monocráticas**.
|
| 19 |
+
- Paginação dos resultados (10, 20, 50 ou 100 itens por página).
|
| 20 |
+
- Visualização detalhada de cada documento em página própria.
|
| 21 |
+
- Links diretos para o inteiro teor (PDF/HTML).
|
| 22 |
+
- Interface responsiva e amigável.
|
| 23 |
+
- Cache automático de token AWS WAF (Playwright).
|
| 24 |
+
|
| 25 |
+
## 📦 Tecnologias
|
| 26 |
+
|
| 27 |
+
- Python 3.9+
|
| 28 |
+
- Flask (backend e templates)
|
| 29 |
+
- Playwright (obtenção do token)
|
| 30 |
+
- Requests (comunicação com a API do STF)
|
| 31 |
+
|
| 32 |
+
## 🔧 Instalação
|
| 33 |
+
|
| 34 |
+
1. Clone o repositório
|
| 35 |
+
2. Instale as dependências:
|
| 36 |
+
```bash
|
| 37 |
+
pip install flask playwright requests certifi urllib3
|
| 38 |
+
```
|
| 39 |
+
|
| 40 |
+
1. Instale os navegadores do Playwright:
|
| 41 |
+
```bash
|
| 42 |
+
playwright install chromium
|
| 43 |
+
```
|
| 44 |
+
2. Execute a aplicação:
|
| 45 |
+
```bash
|
| 46 |
+
python app.py
|
| 47 |
+
```
|
| 48 |
+
3. Acesse no navegador: https://caarleexx-stf.hf.space/
|
| 49 |
+
|
| 50 |
+
📚 Endpoints da API
|
| 51 |
+
|
| 52 |
+
GET /api/busca-multipla
|
| 53 |
+
|
| 54 |
+
Busca documentos com os filtros selecionados.
|
| 55 |
+
|
| 56 |
+
Parâmetros:
|
| 57 |
+
|
| 58 |
+
Nome Tipo Obrigatório Descrição Padrão
|
| 59 |
+
q string sim Termo de busca -
|
| 60 |
+
acordaos bool não Incluir acórdãos (true/false) true
|
| 61 |
+
decisoes bool não Incluir decisões monocráticas (true/false) true
|
| 62 |
+
page int não Número da página 1
|
| 63 |
+
page_size int não Resultados por página (10,20,50,100) 20
|
| 64 |
+
|
| 65 |
+
Exemplo de requisição:
|
| 66 |
+
|
| 67 |
+
```bash
|
| 68 |
+
curl "https://caarleexx-stf.hf.space/api/busca-multipla?q=dano%20moral&acordaos=true&decisoes=true&page=1&page_size=10"
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
Exemplo de resposta:
|
| 72 |
+
|
| 73 |
+
```json
|
| 74 |
+
{
|
| 75 |
+
"q": "dano moral",
|
| 76 |
+
"bases": ["acordaos", "decisoes"],
|
| 77 |
+
"page": 1,
|
| 78 |
+
"page_size": 10,
|
| 79 |
+
"total": 42,
|
| 80 |
+
"total_acordaos": 35,
|
| 81 |
+
"total_decisoes": 7,
|
| 82 |
+
"resultados": [
|
| 83 |
+
{
|
| 84 |
+
"id": "sjur123456",
|
| 85 |
+
"titulo": "RE 123456 AgR",
|
| 86 |
+
"processo": "RE 123456 AgR",
|
| 87 |
+
"relator": "MIN. NOME",
|
| 88 |
+
"orgao": "Segunda Turma",
|
| 89 |
+
"data": "2023-01-15",
|
| 90 |
+
"publicacao": "2023-02-10",
|
| 91 |
+
"ementa": "EMENTA: ...",
|
| 92 |
+
"decisao_texto": "...",
|
| 93 |
+
"acordao_ata": "...",
|
| 94 |
+
"url_documento": "https://portal.stf.jus.br/jurisprudencia/obterInteiroTeor.asp?idDocumento=...",
|
| 95 |
+
"base": "acordaos",
|
| 96 |
+
"score": 12.34
|
| 97 |
+
}
|
| 98 |
+
]
|
| 99 |
+
}
|
| 100 |
+
```
|
| 101 |
+
|
| 102 |
+
GET /api/documento/<doc_id>
|
| 103 |
+
|
| 104 |
+
Retorna os dados completos de um documento específico.
|
| 105 |
+
|
| 106 |
+
Exemplo:
|
| 107 |
+
|
| 108 |
+
```bash
|
| 109 |
+
curl "http://localhost:7860/api/documento/sjur123456"
|
| 110 |
+
```
|
| 111 |
+
|
| 112 |
+
Resposta similar ao item individual do endpoint anterior.
|
| 113 |
+
|
| 114 |
+
GET /api/health
|
| 115 |
+
|
| 116 |
+
Verifica o status da aplicação e do token.
|
| 117 |
+
|
| 118 |
+
Exemplo:
|
| 119 |
+
|
| 120 |
+
```json
|
| 121 |
+
{
|
| 122 |
+
"status": "healthy",
|
| 123 |
+
"playwright_ready": true,
|
| 124 |
+
"token_cached": true
|
| 125 |
+
}
|
| 126 |
+
```
|
| 127 |
+
|
| 128 |
+
🌐 Interface Web
|
| 129 |
+
|
| 130 |
+
Acesse a raiz (/) para utilizar a interface gráfica.
|
| 131 |
+
|
| 132 |
+
· Selecione as bases desejadas.
|
| 133 |
+
· Digite os termos de busca.
|
| 134 |
+
· Clique em PESQUISAR ou pressione Enter.
|
| 135 |
+
· Navegue pelos resultados com os botões de paginação.
|
| 136 |
+
· Clique em "Ver detalhes completos" para abrir a página individual.
|
| 137 |
+
· Use os links "Inteiro teor" para acessar o documento original no site do STF.
|
| 138 |
+
|
| 139 |
+
⚙️ Configuração de ambiente
|
| 140 |
+
|
| 141 |
+
Variável Descrição Padrão
|
| 142 |
+
PORT Porta do servidor Flask 7860
|
| 143 |
+
|
| 144 |
+
📝 Notas
|
| 145 |
+
|
| 146 |
+
· O token AWS WAF é obtido automaticamente via Playwright e armazenado em cache por 10 minutos.
|
| 147 |
+
· Em caso de falha de token, a aplicação tenta renová-lo automaticamente uma vez.
|
| 148 |
+
· A API do STF utilizada é https://jurisprudencia.stf.jus.br/api/search/search.
|
| 149 |
+
|
| 150 |
+
📄 Licença
|
| 151 |
+
|
| 152 |
+
Este projeto é de código aberto. Sinta-se à vontade para contribuir.
|
| 153 |
+
|
| 154 |
+
---
|
| 155 |
+
|
| 156 |
+
Desenvolvido por PARA AI - convergent law technologies.
|