Stf / README.md
caarleexx's picture
Update README.md
67ccdc9 verified
metadata
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:
    pip install flask playwright requests certifi urllib3
    

1. Instale os navegadores do Playwright:
   ```bash
   playwright install chromium
  1. Execute a aplicação:
    python app.py
    
  2. 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:

curl "https://caarleexx-stf.hf.space/api/busca-multipla?q=dano%20moral&acordaos=true&decisoes=true&page=1&page_size=10"

Exemplo de resposta:

{
  "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/

Retorna os dados completos de um documento específico.

Exemplo:

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:

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