Perplexica: um Perplexity auto-hospedado com o seu LLM local
Perplexity popularizou um uso: fazer uma pergunta em linguagem natural e receber uma resposta sintetizada com as fontes citadas, em vez de uma lista de links azuis. Perplexica reproduz exatamente esse funcionamento, mas na sua própria infraestrutura: um mecanismo de busca na web de código aberto que consulta a web via SearXNG e depois faz seu LLM local, executado no Ollama, redigir a resposta. Este guia monta a stack completa em Docker, explica os modos de busca (os famosos “focus”) e diz de forma direta o que se ganha e o que se perde em relação ao original.
#Por que Perplexica em vez de Perplexity
Perplexity é um excelente produto, mas é um serviço em nuvem: suas requisições são enviadas para eles, a versão gratuita é limitada e o modelo que redige não está sob seu controle. O Perplexica inverte a lógica. É um projeto open-source (licença MIT, disponível no GitHub) que orquestra três componentes que você mesmo hospeda. Nenhuma requisição sai da sua rede, não há nada a pagar e você escolhe o modelo que responde.
O interesse não é apenas ideológico. Um mecanismo de respostas local pode consultar fontes sem ser limitado por cotas, rodar em segundo plano em um homelab e servir como componente de pesquisa para outras ferramentas por meio de sua interface. Em contrapartida, a qualidade depende diretamente do seu modelo local e do bom funcionamento da sua instância SearXNG — dois pontos nos quais este guia insiste.
#A stack Perplexica + SearXNG + Ollama
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
Três componentes, cada um com um papel claro. Entender quem faz o quê torna a resolução de problemas muito mais simples quando uma resposta está errada: você saberá qual dos três investigar.
- SearXNG
- Um metabuscador de código aberto que agrega os resultados de dezenas de mecanismos de busca (Google, Bing, DuckDuckGo, Wikipedia…) sem rastreamento. É ele que realmente faz as buscas na web. O Perplexica não funciona sem ele.
- Ollama
- O daemon que serve seu LLM local em http://localhost:11434. É ele que redige a resposta final a partir das fontes. Também fornece um modelo de embeddings para classificar a relevância dos trechos.
- Perplexica
- O maestro e a interface web. Ele reformula a pergunta, controla o SearXNG, extrai o conteúdo das páginas, gerencia a reclassificação por embeddings e compõe o prompt final enviado ao Ollama.
#Pré-requisitos
Nada de exótico, mas alguns pontos de atenção no hardware e nas versões.
- Docker + Docker Compose
- Toda a stack é implantada em contêineres. Docker Desktop (Windows/Mac) ou Docker Engine + o plugin compose (Linux) são suficientes. É o modo de instalação oficial recomendado.
- Ollama instalado e iniciado
- O daemon deve estar rodando e acessível. Verifique com o comando ollama list. Se Ollama estiver rodando na máquina hospedeira e Perplexica dentro do Docker, o endereço a usar será http://host.docker.internal:11434, e não localhost.
- Um modelo de chat
- Um 7-8B em Q4_K_M (~5 GB de VRAM) é um nível mínimo aceitável; um 14B (~9 GB) gera sínteses consideravelmente mais confiáveis. A qualidade da resposta final depende diretamente dessa escolha.
- Um modelo de embeddings
- Leve e rápido, por exemplo nomic-embed-text. Ele serve apenas para reclassificação interna, não para redação.
- ~5 GB de disco e um pouco de RAM
- Para as imagens Docker (Perplexica + SearXNG) e o cache. Os modelos, por sua vez, são gerenciados separadamente pelo Ollama.
#Instalação via Docker em 10 minutos
A instalação oficial é feita pelo repositório Git do projeto, que inclui um docker-compose.yaml pré-configurado com Perplexica e uma instância SearXNG dedicada. Você não precisa instalar o SearXNG separadamente: o compose faz isso por você.
- 01Clonar o repositórioBaixe o projeto Perplexica do GitHub e acesse a pasta. Todas as etapas a seguir são realizadas nessa pasta.
- 02Criar o arquivo de configuraçãoO repositório fornece um arquivo modelo chamado sample.config.toml. Copie-o como config.toml: é esse arquivo que o Perplexica lê ao iniciar para identificar seus backends.
- 03Verificar o arquivo ComposeO docker-compose.yaml define três serviços: perplexica (a aplicação), searxng e a rede necessária. Por padrão, a interface web é exposta na porta 3000.
- 04Iniciar a stackO comando docker compose up constrói as imagens na primeira execução e depois inicia tudo. Reserve alguns minutos na primeira vez para baixar e construir as imagens.
- 05Abrir a interfaceAcesse http://localhost:3000. Se a página de chat aparecer, metade do trabalho já foi feito; resta conectar os modelos.
#Conectar Ollama ao Perplexica
Duas formas de configurar os modelos: pelo arquivo config.toml antes de iniciar o aplicativo, ou pela tela de configurações da interface web depois. A interface é mais simples para começar; o arquivo é prático para uma implantação reproduzível.
O ponto sensível é o endereço do Ollama. O Perplexica roda em um contêiner; para ele, localhost significa o próprio contêiner, não sua máquina. Se o Ollama estiver instalado na máquina host, use host.docker.internal (Windows/Mac e Linux com a opção de host correta) em vez de localhost.
- 01Abrir as configuraçõesNa interface web, o ícone de configurações dá acesso à escolha dos provedores de modelos. Selecione Ollama como provedor.
- 02Informar a URL do OllamaInsira o endereço da API (host.docker.internal:11434 a partir do Docker). O Perplexica então consulta o Ollama e lista automaticamente seus modelos disponíveis.
- 03Escolher o modelo de chatSelecione o modelo que redigirá as respostas (por exemplo, qwen3.5:9b). É o alavanca nº 1 de qualidade.
- 04Escolher o modelo de embeddingsSelecione nomic-embed-text (ou equivalente) para a reclassificação dos trechos. Sem embeddings válidos, a ordenação das fontes fica comprometida.
- 05Fazer uma primeira perguntaTeste com uma pergunta factual recente. Se fontes numeradas aparecerem abaixo da resposta, a cadeia completa funciona.
#Modos de foco: acadêmico, vídeos, Reddit…
Esse é o recurso característico do Perplexica. Em vez de pesquisar em todas as fontes da mesma maneira, você escolhe um « focus mode » que direciona o SearXNG para um tipo de fonte e adapta a forma de redigir. O modo certo muda radicalmente a relevância.
- All Mode
- O modo padrão: busca geral em toda a web. Utilizar para perguntas abertas sem uma área específica.
- Academic Search
- Direciona a pesquisa para fontes científicas e artigos de pesquisa. Ideal para uma revisão de literatura ou uma questão técnica especializada.
- Writing Assistant
- Um modo sem pesquisa na web: o Perplexica utiliza apenas o LLM para redigir ou reformular. Útil quando você não precisa de fontes externas.
- YouTube Search
- Foca em vídeos: a resposta se baseia em conteúdos relevantes do YouTube, com os links. Útil para tutoriais e demonstrações.
- Wolfram Alpha Search
- Para perguntas que envolvem cálculos, ciência e dados factuais: a resposta se baseia no Wolfram Alpha.
- Reddit Search
- Busca nas discussões do Reddit: opiniões, relatos de experiência, debates da comunidade. Muito útil para perguntas sobre opiniões ou produtos.
#Qualidade real das respostas
Sejamos honestos: com um pequeno modelo local, a síntese é menos fluida e menos refinada do que com os modelos de ponta que alimentam a Perplexity. Mas o pipeline conta tanto quanto o modelo. Três eixos determinam o resultado final.
- Tamanho do modelo de chat
- É o fator dominante. Um modelo de 7-8B produz respostas corretas, mas às vezes superficiais; um de 14B segue melhor as instruções de citação e sintetiza de forma mais clara. Acima disso, um de 32B (~19 GB de VRAM) se aproxima de uma experiência convincente.
- A saúde do SearXNG
- Se os mecanismos de busca estiverem bloqueados ou sujeitos a uma limitação na taxa de requisições, o SearXNG retorna poucos resultados, e a resposta fica proporcionalmente mais pobre. Uma resposta vazia muitas vezes decorre da falta de fontes, não do LLM.
- O contexto disponível
- O Perplexica insere trechos de várias páginas no prompt. Um modelo de contexto curto trunca as fontes e perde informações. Prefira um modelo com bom suporte a contexto (mínimo 8k, preferencialmente mais).
#Em comparação com o Perplexity: o que se perde, o que se ganha
O Perplexica não é um clone perfeito, e afirmar que é seria desonesto. A seguir, uma avaliação realista para decidir se vale a pena no seu caso.
- Você ganha — privacidade
- Nenhuma requisição sai da sua rede. Nem o tema das suas pesquisas nem as respostas passam por terceiros. Para o monitoramento de informações sensíveis, isso é decisivo.
- O que você ganha — custo e cotas
- Nada a pagar, sem limite de requisições. Você pode realizar tantas pesquisas quanto seu hardware permitir e integrar a ferramenta a outras ferramentas sem pagar por uma API.
- Você ganha — controle
- Você escolhe o modelo e os mecanismos de busca consultados via SearXNG e pode hospedar tudo por conta própria em um homelab a longo prazo.
- O que se perde — o refinamento da redação
- Os modelos da Perplexity na nuvem são maiores e mais refinados. Com hardware modesto, a síntese local é mais sem graça e faz mais aproximações.
- O que se perde — a robustez de uma solução pronta para uso
- A Perplexity gerencia a infraestrutura por você. Na sua própria instalação, se o SearXNG atingir o limite de requisições ou o Ollama saturar a VRAM, cabe a você diagnosticar e corrigir o problema.
- Perdemos — algumas funções
- Sem aplicativo móvel bem-acabado, sem Pro Search em várias etapas tão aprimorado, sem integrações proprietárias. O Perplexica cobre o essencial, mas não oferece toda a comodidade do produto comercial.
#Solução de problemas comuns
- Perplexica não vê Ollama
- Quase sempre é o endereço. Ao acessar pelo Docker, substitua localhost por host.docker.internal (e, no Linux, adicione extra_hosts com host-gateway). Verifique se o Ollama está de fato escutando e permita conexões de fora de localhost, se necessário.
- Nenhuma fonte nas respostas
- O SearXNG não retorna nada. Abra diretamente a interface do SearXNG para testar uma pesquisa: se ela falhar, alguns mecanismos de busca estão bloqueados ou sujeitos a limites de requisições. Reduza o número de mecanismos de busca ativos ou aguarde.
- A lista de modelos está vazia
- O Perplexica consulta o Ollama ao carregar as configurações. Se a lista estiver vazia, a URL da API está errada ou o Ollama não possui nenhum modelo. Verifique com ollama list na máquina host.
- Respostas muito lentas
- O modelo de chat provavelmente é grande demais para a sua VRAM, e parte do processamento acaba sendo feita na CPU. Mude para uma quantização mais leve (Q4_K_M) ou para um modelo menor; verifique se a GPU está de fato sendo utilizada.
- Erros de embeddings
- O modelo de embeddings não foi selecionado ou não foi baixado. Execute ollama pull nomic-embed-text e selecione-o explicitamente nas configurações.
- A porta 3000 já está em uso
- Outro serviço ocupa a porta. Modifique o mapeamento de porta no docker-compose (por exemplo, 3001:3000) e recarregue a stack.
#Para se aprofundar
A qualidade do Perplexica depende da qualidade do modelo e da infraestrutura que o sustentam. Esses guias fortalecem as bases sobre as quais ele se apoia.
- O que é o Ollama e como funciona
- O daemon que serve seu modelo de chat e seus embeddings na porta 11434 — o componente do qual depende toda a qualidade da redação.
- Escolher sua quantização
- Q4_K_M, Q5_K_M, Q8_0: entender o equilíbrio entre VRAM e qualidade para escolher o modelo de síntese adequado de acordo com a sua placa gráfica.
- AnythingLLM: RAG local pronto para produção
- Para ir além da busca web e construir um RAG com seus próprios documentos, usando o mesmo backend Ollama.
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.