Sistema de busca com IA + autenticação multi-usuário
Motor de busca que transforma perguntas em pesquisas paralelas, sintetizando informações em respostas completas.
Recursos:
- 🔄 Busca paralela em múltiplas fontes
- ⚡ LLMs: GPT-20B (queries/resumos) + GPT-120B (síntese)
- 👤 Autenticação com email/senha (bcrypt)
- 💾 Histórico de conversas por usuário (Supabase)
- 📚 Citações automáticas
LangGraph é um dos frameworks que mais cresce para desenvolvimento de agentes de IA:
Adoção empresarial:
- Usado por LinkedIn, Uber, Replit, Elastic, Klarna em produção
- ~400 empresas usando LangGraph Platform (2025)
- LangChain (empresa-mãe) é unicórnio com valuation de $1.25B
Investimentos:
- $25M Series A em 2024
- $125M Series B em 2025 (liderado por IVP, Sequoia, Benchmark)
Por que neste projeto:
- Execução paralela real (múltiplas queries simultâneas)
- Controle total sobre fluxo de dados
- Estado compartilhado com reducers (
operator.add)
Se fosse apenas fluxo linear, LangChain seria suficiente. O paralelismo justifica o uso de grafos.
Deploy online: https://perplexity-clone.streamlit.app/
Para rodar localmente:
git clone https://github.com/DaviSantiago01/perplexity-clone.git
cd perplexity-clone
pip install -r requirements.txtConfigure .env (use .env.example):
GROQ_API_KEY=sua_chave
TAVILY_API_KEY=sua_chave
SUPABASE_URL=seu_url
SUPABASE_KEY=sua_keyExecute:
streamlit run src/app.pyperplexity-clone/
├── src/
│ ├── app.py # Interface Streamlit
│ ├── graph.py # Grafo LangGraph
│ ├── prompts.py # Templates de prompts
│ └── database.py # Autenticação + BD
├── docs/ # Documentação técnica
├── requirements.txt
├── .env
└── README.md
flowchart TB
A[📝 Pergunta] --> B[🔍 Gera Queries]
B --> |GPT-20B: 3-5 queries| C[🌐 Busca Paralela]
C --> C1[Tavily 1]
C --> C2[Tavily 2]
C --> C3[Tavily 3]
C1 --> D[📄 Resumo]
C2 --> D
C3 --> D
D --> |GPT-20B| E[📊 Consolida]
E --> |GPT-120B| F[🧠 Síntese]
F --> G[✅ Resposta + Fontes]
Fluxo: Pergunta → Queries (20B) → Busca Paralela → Resumos (20B) → Síntese (120B) → Resposta
Input: "Como fazer café expresso?"
Processamento:
flowchart LR
A["☕ Como fazer café expresso?"] --> B["🔍 GPT-20B gera queries"]
B --> C1["temperatura água café"]
B --> C2["moagem grãos expresso"]
B --> C3["tempo extração"]
C1 --> D1["🌐 Tavily busca 1"]
C2 --> D2["🌐 Tavily busca 2"]
C3 --> D3["🌐 Tavily busca 3"]
D1 --> E1["📄 Resumo: 90-96°C"]
D2 --> E2["📄 Resumo: moagem fina"]
D3 --> E3["📄 Resumo: 25-30 seg"]
E1 --> F["🧠 GPT-120B sintetiza tudo"]
E2 --> F
E3 --> F
F --> G["✅ Resposta completa + fontes"]
- Sistema gera 3 queries otimizadas
- Busca paralela em cada uma
- Resume resultados individuais (GPT-20B)
- Sintetiza resposta completa (GPT-120B)
Output:
Para café expresso perfeito:
- Moagem fina e uniforme [1]
- Água a 90-96°C [2]
- Dose: 18-20g de café
- Extração: 25-30 segundos [3]
Resultado: crema dourada e sabor equilibrado.
[1] barista-institute.com/guia-expresso
[2] coffeeresearch.org/temperature
[3] specialtycoffee.com/timing
Projeto inspirado no tutorial da Asimov Academy. Vídeo original: Crie um Clone do Perplexity AI com LangGraph. Esta versão foi atualizada para LangGraph v1.0 e LangChain v1.0.