3

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!

Carregando publicação patrocinada...