O api-recommendation é o motor de recomendação B2B da plataforma: recebe o nome de um serviço
técnico e devolve os profissionais mais qualificados para executá-lo, com pontuação e justificativa
para cada candidato. Os dados de profissionais, serviços e qualificações ficam modelados como um
grafo no Neo4j, o que permite consultas de ranqueamento que combinam afiliação, qualificações e
histórico de eventos (visualizações, cliques e contratações) de forma muito mais natural do que em
um modelo relacional. O serviço não é dono desses dados: ele os sincroniza periodicamente a partir
do PostgreSQL somente leitura do api-core, projetando o snapshot relacional em um grafo otimizado
para consultas de ranqueamento.
- Recomendação de profissionais, dado o nome de um serviço técnico, o motor consulta o grafo
Neo4j e retorna os candidatos ranqueados por um conjunto de pesos (qualificação, afiliação,
histórico de eventos) definidos em
app/core/weights.py. - Telemetria de eventos, cada interação relevante (visualização, clique, contratação) de um
candidato recomendado é registrada via
POST /events, alimentando o ranqueamento futuro. - Sincronização com o api-core, o serviço mantém uma conexão somente leitura com o PostgreSQL
do
api-coree projeta esse estado no grafo Neo4j periodicamente (SYNC_ON_STARTUP) ou sob demanda via rota interna autenticada (POST /internal/sync/core). - Autenticação por API key, todas as rotas de negócio exigem uma chave própria (
API_KEY,RECOMMENDATION_API_KEYouSYNC_API_KEY, conforme a rota), comparadas comhmac.compare_digestpara evitar ataques de timing.
- ARCHITECTURE.md
- RUNNING.md
- {link do arquivo de deployment}
- CONTRIBUTING.md, convenções de commit, branch e Pull Request.
- CODE_OF_CONDUCT.md, código de conduta do projeto.
- SECURITY.md, como reportar vulnerabilidades de segurança.