Aplicação para praticar perguntas em formato GIFT com possibilidade de explicar as respostas via serviços de IA.
Outras distros / venv:
pip install -r requirements.txtPara Windows e Linux, pode descarregar executáveis pré-compilados:
- Seleção de categorias e número de perguntas
- Explicação de perguntas via LLM (Groq, Hugging Face, Gemini, Mistral, Perplexity, OpenRouter, Cloudflare)
- Configurações para ficheiro GIFT, provedor/modelo LLM e prompt
- Resultados com estatísticas e histórico
- Correção imediata opcional durante o teste ("Corrigir-me se estiver errado")
- Acesso rápido a "Explicar" a partir do histórico/resultados
- Renderização HTML com QTextBrowser (leve e sem dependências extra)
- Zoom no conteúdo da explicação (Ctrl + roda do rato, Ctrl +/-, Ctrl + 0)
- Links abrem automaticamente no browser externo
- Imagens ilustrativas opcionais nas explicações (coluna lateral) com seleção de fonte:
- Wikimedia Commons, Openverse, Radiopaedia (scraping best-effort), Unsplash Source
- Pexels (requer
PEXELS_API_KEY) - Sem imagens
- Aceder a "Configurações" → LLM
- Configurar uma API_KEY (precisa de registo prévio, quase todos oferecem acessos free tier)
- Providers: Groq, Hugging Face, Google Gemini, Mistral, Perplexity, OpenRouter, Cloudflare
- Prompt padrão gera HTML formatado
- Para enriquecer com imagens, o LLM pode incluir no HTML comentários no formato:
<!-- IMAGE_KEYWORDS: palavra1, palavra2 -->- A fonte de imagens pode ser definida em Configurações (e também alterada no diálogo da explicação sem persistir)
- API keys guardadas localmente em
data/preferences.json
main.py: aplicação principal (QMainWindow)data/constants.py: constantes da aplicaçãodata/selection_screen.py: seleção de categoriasdata/question_screen.py: apresentação de perguntasdata/results_screen.py: resultados e estatísticasdata/history_screen.py: histórico detalhado de testesdata/settings_screen.py: configurações (ficheiro, LLM)data/explanation_viewer.py: visualizador HTMLdata/image_enrichment.py: extração de keywords e pesquisa de imagens (opcional)data/gift_parser.py: parser de ficheiros GIFTdata/llm_client.py: cliente LLM (múltiplos providers)data/preferences.py: persistência de configuraçõesdata/test_logger.py: histórico de testes
- Interface Qt6 moderna
- Tamanhos de janela configuráveis em "Configurações" (percentagem do ecrã)
- Executável Windows com ~21MB (compilado com Nuitka)

