-
Interface web
HTML, CSS e JavaScript puro, sem framework e sem build. A base vem dividida por área (
base_niveis_*.js) e carrega em partes. -
Extração dos PDFs
Node.js e pdftotext (Poppler, que vem com o Git for Windows), pelo
gerar_base_niveis.js. 1.066 PDFs viram 1.052 documentos e 10.667 páginas. -
Classificação em três níveis
O código lido no cabeçalho (ex.: POP.DENF.057) define Nível 1 › 2 › 3. Fica a versão mais nova, com data de revisão e aviso de revisão vencida. Correções em
classificacao_ajustes.csv. -
Busca híbrida
Junta a busca por palavras (BM25 com radicais, sinônimos e termo destacado) com a busca por significado (modelo multilingual-e5-small no navegador, via Transformers.js e ONNX Runtime Web, sem internet), combinadas por Reciprocal Rank Fusion.
-
Leitor de páginas
A página abre dentro do site com as frases do termo em amarelo, as outras páginas ao lado e o status do POP. O PDF original abre na página certa (#page=N).
-
Servidor local
servidor.ps1(PowerShell HttpListener), aberto peloAbrir Busca.bat, serve o modelo e o WASM que o navegador bloqueia em file://. -
Hospedagem e acesso
Endereço pops.lopeslab.tech e QR Code gerado em Python (
tools/gerar_qr_apresentacao.py) para abrir a busca pelo celular. -
Design
Protótipo no Figma, fonte Raleway e paleta verde (#03814a) e vermelho (#b2282f) do HU-UFGD.