v0.4.2 — Parser Semantics + AI Provider Fix¶
Objetivo¶
A v0.4.2 corrige a contagem inflada de experiências e projetos, melhora a leitura de headings reais e deixa claro quando a análise usa Gemini ou o fallback local.
O escopo não inclui scraping real, extensão Chrome, auto-apply, PyTorch ou Concurso Mode funcional.
Parser semântico¶
O parser agora:
- cria seções internas com heading, nome normalizado e linhas;
- agrupa experiências por cabeçalhos com cargo, empresa e período;
- agrupa projetos nomeados e suas descrições;
- reconhece aliases comuns em currículos brasileiros;
- separa formação de cursos quando o heading combina ambos;
- limita o resumo e evita usar o currículo inteiro;
- quebra skills comportamentais em chips curtos;
- preserva links sem protocolo.
UI de currículo¶
LinkedIn, GitHub e portfólio aparecem como links clicáveis com rótulos compactos. Experiências e projetos mostram os três primeiros blocos; itens adicionais ficam em Ver todos.
A edição separa blocos por linha vazia para não fragmentar descrições multilinha.
Provider de IA¶
O provider padrão é a análise local:
DEFAULT_AI_PROVIDER=local
GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.5-flash
Aliases antigos continuam compatíveis:
LLM_PROVIDER=local
LLM_MODEL=gemini-2.5-flash
DEFAULT_AI_PROVIDER e GEMINI_MODEL têm precedência.
Gemini¶
Instalação opcional:
pip install -r docs/requirements/requirements-ai.txt
Configuração:
DEFAULT_AI_PROVIDER=gemini
GEMINI_API_KEY=sua_chave
GEMINI_MODEL=gemini-2.5-flash
Execução:
streamlit run app.py
Continuidade na v0.5.0¶
A v0.5.0 mantém o parser semântico da v0.4.2 e melhora sua validação com expected outputs fictícios. Skills passam por limpeza adicional de prefixos de categoria e duplicatas normalizadas.
O provider Gemini também ganha setup guiado na sidebar, teste explícito, salvamento local seguro e ativação automática.
Veja v0.5.0 — Real Usability, AI Setup and Validation.
Sem chave, a UI informa Gemini não configurado. Usando análise local.. Sem SDK, informa Instale com: pip install -r docs/requirements/requirements-ai.txt. Falhas durante a chamada mostram provider solicitado, provider usado e fallback.
Fixtures¶
Fixtures fictícios em examples/ cobrem:
- currículo técnico e universitário com experiência em empresa aeroespacial fictícia;
- currículo júnior de dados;
- currículo júnior de desenvolvimento web;
- projetos selecionados e descrições multilinha;
- links sem HTTPS;
- soft skills em linha corrida;
- três descrições de vagas correspondentes.
Testes¶
Os testes verificam blocos semânticos, aliases, links, skills, resumo, roteamento por ambiente, compatibilidade dos aliases antigos, fallback explícito e rótulos amigáveis da UI.
Validação esperada¶
pyright
ruff check .
ruff format . --check
python -m pytest -q
mkdocs build --strict
streamlit run app.py