File size: 3,890 Bytes
3f0614e
0c8be95
3f0614e
 
 
 
 
0c8be95
67ccdc9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
---
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.