~/beer-and-code
~ / eventos / workshop-sistema-de-recomendacao-de-conteudo-do-instagram $ _
Workshop Encerrado

Workshop: Construa em 2h o Sistema de Recomendação de Conteúdo do Instagram

Workshop prático de duas horas e meia em que Lucas Souza (Virgo) construiu, ao vivo e do zero, um sistema de recomendação de conteúdo nos moldes do que roda por trás do feed do Instagram, TikTok e afins — usando embeddings multimodais do Gemini, pgvector e Lar...

Ficha do evento
formato workshop
quando 10 Abr 2026
horário 19h às 22h
status encerrado

Foi um encontro sem enrolação, no clima direto que marca o Beer and Code: o Virgo entrou já avisando que ninguém sairia dali com só teoria, e cumpriu — em poucos minutos saiu da explicação de embeddings para o terminal, migration e código Laravel rodando.

Destaques

  • Teoria de embeddings do zero: por que Word2Vec (2003) ficou obsoleto e como os transformers (2018) resolveram o problema de uma mesma palavra mudar de sentido conforme o contexto ("banco" de praça vs. banco digital).
  • Uso do Gemini Embeddings 2 (modelo multimodal, em preview desde março) para gerar embeddings de texto, imagem e vídeo juntos — tudo no mesmo espaço vetorial de 1536 dimensões.
  • Modelagem de dados: tabela post_embeddings separada do post (para permitir múltiplos embeddings por conteúdo no futuro), coluna vector com extensão pgvector garantida via migration, e índice HNSW (grafo de vizinhos, complexidade O(log n) em vez de O(n)) para busca rápida.
  • Geração de embedding assíncrona via PostObserver (afterCommit) + job que monta o payload multimodal (texto + mídia em base64) e chama a API do Gemini.
  • Cálculo do "gosto" do usuário como centroide: média, dimensão a dimensão, dos embeddings de todos os posts curtidos — sem gastar token nenhum de IA nesse passo, é matemática pura dentro do Laravel.
  • Query final do feed com ORDER BY post_embeddings.embedding <=> :centroid (operador de distância de cosseno), trazendo o feed já ordenado por similaridade ao gosto do usuário, com fallback para ordenação cronológica quando o usuário ainda não tem centroide.
  • Evolução para arquitetura de produção: retrieval em dois estágios, vetores de longo prazo (30-90 dias) e curto prazo (24-48h), exclusão de conteúdo já visto/denunciado, MMR para re-ranking e uma camada de observabilidade para explicar por que cada post apareceu no feed — tudo especificado em Spec Driven Development e implementado com Claude Code em loop (Ralph) até fechar as fases.

Profundidade técnica

A aula não fica no superficial: discute explicitamente por que JSON no MySQL não serve para embeddings (falta o operador de cálculo de distância), por que árvore binária não indexa colunas vetoriais, a diferença prática entre HNSW e IVFFlat, e o motivo de usar cosseno em vez de distância euclidiana (evita ter que normalizar o vetor). Também aborda decisões de engenharia de produto real: threshold de similaridade (0.7–0.8) como regra de negócio, o trade-off dimensões x custo x precisão, e as armadilhas de recalcular o centroide a cada like (custo O(n) que puxa para fila) versus manter incremental.

Faça parte do Clã

Se você quer ver esse tipo de arquitetura sendo construída ao vivo, tirar dúvida na hora e ter acesso a mais de 500 horas de conteúdo técnico sobre engenharia de IA (embeddings, RAG, agentes, MCP, spec driven development e muito mais), a hora é agora. O Clã Beer and Code reúne encontros semanais ao vivo, comunidade ativa no WhatsApp e workshops práticos como este — sem enrolação, sem curso de curso, só o que realmente funciona em produção.

▪ Clã Beer and Code
Faça parte do Clã. Construa o que importa.

Engenharia de IA virou profissão, e se aprende construindo, não assistindo. O Clã Beer and Code é o ambiente onde isso acontece ao vivo, toda semana: RAG, agentes, observabilidade e LLMOps em projetos reais, ao lado de quem já está em produção. É pago, é assinatura, e é exatamente o ambiente que estes encontros dão uma amostra.

Entrar no Clã
tocando