| --- |
| 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. |