Plataforma em FastAPI para diagnóstico preditivo de aderência profissional. Realiza extração de texto de currículos em PDF, otimização semântica, cálculo de similaridade vetorial via embeddings NVIDIA e auditoria neural com modelos DeepSeek avançados.
- Upload e Processamento Seguro: Validação de magic bytes (
%PDF), controle de tamanho máximo de upload (10MB) e proteção contra XSS no front-end. - Fluxo Assíncrono via BackgroundTasks: O pipeline de análise roda em background, com polling em tempo real no dashboard visualizando o andamento etapa por etapa.
- Persistência Robusta em SQLite: Armazenamento seguro de vagas e do histórico de análises em
data/ats.db. - Auditoria Preditiva Precisa: Integração validada com o catálogo NVIDIA (
deepseek-ai/deepseek-r1edeepseek-ai/deepseek-v3) e fallback robusto parameta/llama-3.3-70b-instruct. - Configurações Centralizadas: Gestão profissional de variáveis de ambiente com
pydantic-settings. - Observabilidade e Qualidade: Logging estruturado JSON, proteção contra abusos via rate limiting (
slowapi) e suíte completa de testes automatizados (pytest).
cv-matcher/
├── app/
│ ├── config.py # Central de configurações (pydantic-settings)
│ ├── database.py # Conexão e persistência SQLite
│ ├── logger.py # Logging estruturado em JSON
│ ├── main.py # Rotas FastAPI e controle de pipeline
│ ├── static/
│ │ ├── app.js # Lógica assíncrona do dashboard (polling, validações)
│ │ └── style.css # Design System (Tema Dark Ocean)
│ └── templates/
│ └── index.html # Interface do Dashboard
├── data/
│ └── ats.db # Banco de dados SQLite gerado automaticamente
├── tests/
│ └── test_api.py # Suíte de testes automatizados
├── requirements.txt # Dependências de produção fixadas
├── requirements-dev.txt # Dependências de desenvolvimento e teste
├── Dockerfile # Imagem otimizada para produção
├── docker-compose.yml # Orquestração para deploy na nuvem
├── .env.example # Modelo de variáveis de ambiente
└── README.md- Clone o repositório e crie o ambiente virtual:
python -m venv .venv source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows PowerShell
- Instale as dependências:
pip install -r requirements.txt pip install -r requirements-dev.txt
- Configure as variáveis de ambiente (copie
.env.examplepara.env):cp .env.example .env # Edite o arquivo .env inserindo sua NVIDIA_API_KEY - Inicie o servidor:
uvicorn app.main:app --reload
- Acesse
http://localhost:8000.
docker compose up --buildAcesse http://localhost:8000.
- Na sua VM da Oracle Cloud (Ubuntu/Oracle Linux), certifique-se de ter o Docker e Docker Compose instalados.
- Clone o repositório para a VM.
- Crie e configure o arquivo
.envna raiz do projeto com suaNVIDIA_API_KEYe definaAPP_ENV=production. - Inicie o contêiner em modo detached:
docker compose up -d --build
- Configure as regras de firewall da VM (Ingress Rules na Oracle Cloud VCN e
ufw/iptableslocal) para liberar a porta 8000 (ou configure um proxy reverso como Nginx apontando paralocalhost:8000).
Para rodar a suíte de testes automatizados e validação de código:
# Executar testes
pytest -v
# Verificar linting e formatação com ruff
ruff check .