SearchMe Opensource — Encontre parceiros de negócio no TabNews usando IA local (e o feriado que eu jurei que não trabalharia)
Prometi pra mim mesmo que hoje não ia trabalhar. Feriado é sagrado, projeto nenhum merece meu código.
Pois bem, depois de uma hora acordado, sem ter o que fazer, resolvi fuçar numa "coisinha boba" — um hobby, sabe? Só pra passar o tempo.
Aquela coisinha boba virou um sistema de busca semântica com embeddings, FastAPI e IA local. Mas na minha cabeça ainda é hobby, ok? A gente vai fingindo que não é trabalho até o PR ficar pronto. E foi assim que nasceu o SearchMe, uma ferramenta que resolve algo que eu mesmo sentia falta aqui no TabNews.
O problema: Como achar a pessoa certa pra fazer parceria de negócio no meio de tanto conteúdo bom?
Não tô falando de busca por palavra-chave — isso qualquer busca faz. Tô falando de você descrever o perfil do parceiro que procura e o sistema entender o significado e te devolver os usuários mais compatíveis.
Exemplo: você digita "desenvolvedor fullstack com experiência em SaaS e startups" e o sistema ranqueia os perfis do TabNews por similaridade semântica. Não é keyword match — é o modelo Gemma comparando o sentido da sua busca com a bio e os títulos das postagens de cada usuário.
Como funciona (resumidamente):
A primeira sincronização dispara sozinha — o sistema puxa os ~500 posts mais relevantes do TabNews (ranqueados pelo próprio algoritmo da plataforma, baseado em TabCoins e engajamento), extrai os autores e monta um perfil semântico de cada um usando IA local.
Daí pra frente é tudo offline — sua busca gera um embedding via Gemma (768 dimensões), compara por similaridade de cosseno contra todos os perfis em batch e te devolve os top matches em menos de 1 segundo.
Tem feed lateral com posts baseados nos seus interesses, exportação CSV com dados de contato dos perfis encontrados e página de atividade com gráfico de postagens por mês pra cada usuário.
Atualização automática a cada 10 minutos (só conteúdo novo, sem abusar da API).
Stack: Python 3.10, FastAPI, SQLite (stdlib, zero configuração), sentence-transformers com o modelo Gemma (google/embeddinggemma-300m), frontend HTML/CSS/JS vanilla — o framework é a coragem.
O pulo do gato: roda em CPU, sem placa de vídeo.
O modelo Gemma tem só 300 milhões de parâmetros, é otimizado pra embeddings e voa em processador comum. Testei num notebook sem GPU, e a busca sai em menos de 1 segundo. Nada de CUDA, nada de contas em nuvem, nada de desculpa.
Por que Google Drive e não HuggingFace?
O modelo é "gated" no HuggingFace — exige conta, aceite de termos e token de autenticação. Com o Google Drive o download é direto, sem cadastro. Priorizei a simplicidade de instalação. Você baixa o modelo uma vez e nunca mais precisa de internet.
Instalação (Windows, Linux ou macOS):
bash
git clone https://github.com/edilsonmaia/searchme.git
cd searchme
Windows:
.\run.bat
Linux/macOS:
chmod +x run.sh && ./run.sh
O run.bat/run.sh cuida de tudo: cria venv, instala dependências, baixa o modelo (1.2 GB, só na primeira vez) e sobe o servidor em http://127.0.0.1:45000.
Ao abrir a página, a sincronização inicial dispara automaticamente — você não precisa clicar em nada.
Código 100% comentado em português — e aqui entra a minha prioridade didática.
Quando comecei o projeto, decidi: cada função vai explicar não só o que faz, mas por que faz daquela forma e qual decisão de design está por trás. Se você está aprendendo Python, FastAPI, embeddings semânticos ou integração com APIs REST, o repositório vira quase uma aula prática. Sem exagero: comentei até os pensamentos intrusivos de "será que vale a pena ordenar essa lista agora ou depois?".
É uma cópia da busca do TabNews? Não.
A busca do TabNews usa Google CSE pra encontrar posts por palavra-chave. O SearchMe:
Busca usuários/perfis (não posts)
Usa similaridade semântica (não palavras-chave)
Roda localmente (não depende do Google, nem de internet depois do download do modelo)
Oferece interesses salvos, feed personalizado, exportação CSV e gráficos
Se quiser testar, contribuir ou só olhar o código (que, sério, tá bem comentado), tá no GitHub com licença MIT:
👉 https://github.com/edilsonmaia/searchme
Agora sim: feriado, hobby, didática e zero GPU — tudo no mesmo pacote. Se precisar de mais algum ajuste, é só pedir!