Início Rápido com Vane (Perplexica 2.0), Ollama e llama.cpp
Busca de IA auto-hospedada com LLMs locais
O Vane é uma das entradas mais pragmáticas no espaço de “busca com IA e citações”: um motor de respostas self-hosted que combina recuperação web em tempo real com LLMs locais ou na nuvem, mantendo toda a pilha sob seu controle.
O projeto era originalmente conhecido como Perplexica, e a renomeação para Vane não é apenas cosmética: ela reflete tanto uma limpeza de marca quanto uma transição constante de ser enquadrado como “um clone” para ser um motor de respostas generalista.

Como a parte útil da pilha não é apenas a interface, mas também onde a inferência e os dados estão alojados, esta comparação de hospedagem de LLMs em 2026 reúne configurações locais, self-hosted e em nuvem para que você possa posicionar o Vane junto de outros runtimes e opções de deploy.
Este post foca nas partes que leitores técnicos realmente se importam: como o sistema funciona, um quickstart minimalista com Docker e como executá-lo com inferência local via Ollama e llama.cpp (diretamente ou através do LM Studio). Ao longo do caminho, cada tópico de FAQ é respondido em contexto, não deixado para o final.
O Vane é intencionalmente um motor de respostas, não um sistema de pesquisa recursiva, e vale a pena ser preciso sobre essa distinção. Sistemas de Pesquisa Profunda Self-Hosted: 12 Ferramentas Comparadas coloca o Vane em linha com doze arquiteturas de pesquisa self-hosted e explica por que “executa múltiplas buscas” não é a mesma coisa que “realiza Pesquisa Profunda”.
O que é o Vane e como os mecanismos de busca com IA funcionam
Em alto nível, o Vane é uma aplicação Next.js que combina uma interface de chat com busca e citações. As peças arquitetônicas centrais são exatamente o que se esperaria de um mecanismo de busca com IA moderno: rotas de API para chat e busca, orquestração que decide quando fazer a recuperação e um redator de respostas ciente de citações.
Quando você submete uma consulta na interface, o Vane chama POST /api/chat. Internamente, o fluxo de trabalho é estruturado deliberadamente:
- Classifica a pergunta primeiro para decidir se pesquisa é necessária e quais auxiliares devem ser executados.
- Executa pesquisa e widgets em paralelo.
- Gera a resposta final e inclui citações.
Aquele rótulo de “mecanismo de busca com IA” importa, porque isso não é apenas um frontend de chat. A diferença chave é a geração aumentada por recuperação: em vez de confiar puramente nos parâmetros do LLM, o Vane busca contexto externo (resultados web e, opcionalmente, uploads de usuários) e usa esse material como a base fundamentadora para a resposta final. Seus documentos destacam explicitamente a busca na web e “buscar arquivos enviados pelo usuário” como parte da pesquisa, com embeddings usados para busca semântica sobre uploads.
As citações não são um afterthought (coisa deixada de lado). O Vane instrui o modelo a citar as referências que usou, e então a interface renderiza aquelas citações ao lado da resposta. Na prática, é isso que separa a busca com IA “útil” de um gerador de alucinações confiante que apenas acontece ter um botão de busca.
O SearxNG fica por baixo da camada de recuperação web para a maioria dos setups. O SearxNG é um mecanismo de metabusca gratuito que agrega resultados de muitos serviços de busca e, por design, não rastreia nem cria perfis de usuários. Essa é uma filosofia fundamentalmente diferente das APIs de busca pagas, que geralmente lhe dão um índice de um único fornecedor e um contrato de dados comercial.
História e renomeação de Perplexica para Vane
O Perplexica começou como um motor de respostas open-source e self-hostable inspirado no Perplexity AI. Vários guias públicos ainda descrevem o projeto como “anteriormente conhecido como Perplexica” e tratam o Vane como a continuação, e não um fork hostil.
A renomeação foi implementada diretamente no repositório upstream. No histórico de commits da branch master, o commit intitulado feat(app): rename to 'vane' aparece em 09/03/2026 (SHA 39c0f19).
O “como” é mais interessante do que o título. Aquele commit de renomeação não é apenas um ajuste no README: ele atualiza os nomes de imagens Docker de itzcrazykns1337/perplexica para itzcrazykns1337/vane, ajusta os caminhos do sistema de arquivos do container de /home/perplexica para /home/vane e atualiza textos e assets do projeto de acordo.
Se você está se perguntando por que projetos de IA open-source mudam de nome, o Vane é um exemplo didático dos motores usuais:
- A proximidade do nome com uma marca comercial cria confusão (e às vezes risco legal).
- O escopo do projeto se expande além do enquadramento original (de “clone” para “motor de respostas”).
- Os artefatos de distribuição precisam de uma identidade coerente (imagens Docker, docs, rótulos da interface).
Além disso, o ecossistema não muda de nome da noite para o dia. O Docker Hub ainda mostra ambos os repositórios sob a conta do mantenedor, incluindo itzcrazykns1337/vane e itzcrazykns1337/perplexica. Então você ainda verá posts de blog mais antigos, arquivos de compose e referências de registry usando a nomenclatura Perplexica mesmo depois do rebrand do repositório.
Quickstart Docker e configuração básica
O README oficial do Vane é refrescantemente direto: execute um único container e você tem o Vane mais um backend de busca SearxNG embutido. O quickstart Docker minimalista parece com isto.
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest
Essa imagem é posicionada como o caminho “funciona direto” porque inclui o SearxNG, então você não precisa de um backend de busca externo apenas para testar a interface. A configuração acontece na tela de setup depois que você abre a interface web em http://localhost:3000.
Se você já executa o SearxNG (comum em homelabs), a imagem “slim” do Vane espera que você aponte para uma instância externa de SearxNG usando SEARXNG_API_URL. O README também destaca duas expectativas práticas de configuração do SearxNG: saída JSON habilitada e o motor Wolfram Alpha habilitado.
docker run -d -p 3000:3000 \
-e SEARXNG_API_URL=http://your-searxng-url:8080 \
-v vane-data:/home/vane/data \
--name vane \
itzcrazykns1337/vane:slim-latest
Manter o Vane atualizado também está documentado no repositório. O fluxo de atualização oficial é basicamente puxar a imagem mais recente e reiniciar com o mesmo volume, o que preserva as configurações.
docker pull itzcrazykns1337/vane:latest
docker stop vane
docker rm vane
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest
Uma vez que você o tiver rodando, o Vane pode ser usado como um atalho de motor de busca do navegador apontando um motor customizado para http://localhost:3000/?q=%s. Essa é uma pequena funcionalidade com impacto desproporcional se você quiser que a “busca com IA” pareça busca, e não um aplicativo que você visita.
Para automação e integração, o Vane expõe uma API. Os docs descrevem GET /api/providers para descobrir provedores e modelos configurados, e POST /api/search para executar uma busca com um modelo de chat escolhido, modelo de embedding, fontes e um optimizationMode (velocidade, equilibrado, qualidade).
Setup de LLM local com Ollama
O Vane suporta LLMs locais através do Ollama e provedores de nuvem na mesma interface, que é a abstração correta se você pensa em termos de “conexões” e “modelos” em vez de “fornecedores”.
A Folha de dicas Ollama lista comandos CLI comuns e verificações rápidas de API que se combinam bem com a escolha de modelos e a verificação do Ollama antes de você perseguir problemas de rede Docker.
O problema mais comum não é a escolha do modelo, é a rede. Quando o Vane roda no Docker e o Ollama roda no host, “localhost” não significa o que você pensa que significa a partir de dentro do container. O Vane documenta URLs base específicas do sistema operacional para se conectar ao Ollama de um container.
Pegadinhas de conectividade com Docker
A seção de troubleshooting do Vane recomenda explicitamente:
- Windows e macOS:
http://host.docker.internal:11434 - Linux:
http://<private_ip_of_host>:11434
Para Linux, o Vane também nota que o Ollama pode estar vinculado a 127.0.0.1 por padrão e precisa ser exposto. O README sugere definir OLLAMA_HOST=0.0.0.0:11434 no serviço systemd e reiniciar o serviço.
Isso está em linha com as próprias variáveis de ambiente do serve do Ollama, onde OLLAMA_HOST controla o endereço de bind do servidor e tem padrão de 127.0.0.1:11434.
Manter modelos quentes e escolher modelos
Se você executa inferência local, sentirá os cold starts (inícios frios). O Ollama tem dois mecanismos relacionados para manter modelos carregados:
OLLAMA_KEEP_ALIVEcomo configuração de servidor.keep_alivecomo parâmetro por requisição para/api/generatee/api/chat, que sobrepõe o padrão do servidor.
O Vane adicionou seu próprio suporte a keep_alive para modelos Ollama (para que o app possa influenciar por quanto tempo um modelo permanece na memória). Essa funcionalidade aparece nas notas de liberação v1.10.0 do Vane.
A seleção de modelos é a parte que se torna excessivamente complicada na internet. Para trabalho estilo Vane, a divisão mais prática é:
- Um modelo de chat ajustado para instruções (para sumarização e síntese).
- Um modelo de embedding para busca de similaridade sobre uploads e texto recuperado. Os docs de API do Vane mostram que a requisição de busca escolhe explicitamente tanto um modelo de chat quanto um modelo de embedding.
O Ollama em si suporta workflows de embeddings, e até os docs da CLI incluem um exemplo usando nomic-embed-text para embeddings.
Esta é também a resposta para a FAQ sobre executar busca com IA localmente sem APIs de nuvem: com Vane no Docker, SearxNG local e Ollama no seu hardware, você pode manter tanto suas consultas de busca quanto seus uploads de documentos privados dentro da fronteira da sua própria rede. (Se você decidir se conectar a um provedor de nuvem em vez disso, a conexão obviamente muda o caminho de dados.)
Setup de LLM local com llama.cpp
Há duas formas realistas de emparelhar o Vane com o llama.cpp:
- Usar o LM Studio como a camada de servidor (e deixar o Vane falar com ele).
- Executar o próprio servidor HTTP do llama.cpp (llama-server) e se conectar via um endpoint compatível com OpenAI.
O Vane suporta explicitamente “Servidores Locais Compatíveis com a API da OpenAI” e destaca os requisitos usuais: vincular a 0.0.0.0 em vez de 127.0.0.1, usar a porta correta, definir um nome de modelo que existe no servidor e não deixar o campo de chave de API vazio mesmo se o servidor não aplicar autenticação.
O LM Studio é relevante aqui porque fica por cima de backends locais (frequentemente llama.cpp) enquanto expõe uma API compatível com a OpenAI. O Vane v1.12.1 nota especificamente a adição de um provedor LM Studio.
Os docs do LM Studio listam os endpoints compatíveis com a OpenAI suportados e mostram um exemplo de URL base usando http://localhost:1234/v1 (assumindo a porta 1234). Isso importa porque, da perspectiva do Vane, é “apenas outro servidor estilo OpenAI”.
Se você prefere executar o llama.cpp diretamente, Quickstart do llama.cpp com CLI e Servidor cobre instalação, llama-cli e llama-server. O servidor HTTP oficial do llama.cpp suporta rotas de chat completions, respostas e embeddings compatíveis com a API da OpenAI, junto com uma longa lista de recursos de servidor (batching, monitoramento, uso de ferramentas).
Mesmo se você não memorizar as flags, as partes importantes são:
- O servidor existe e está ativamente documentado.
- A superfície da API é compatível o suficiente para que clientes estilo OpenAI possam falar com ele, o que é exatamente o que o Vane precisa para seu padrão de conexão “compatível com OpenAI”.
O que saiu recentemente e o que está mudando agora
Se você quer entender o que o Vane se tornou no último ano, siga as notas de liberação e o histórico da branch master em vez do hype.
Até 10/04/2026 (Austrália/Melbourne), a liberação GitHub tagada mais recente visível na página de releases é a v1.12.1 (31/12/2025). Essa liberação nota a adição de um provedor LM Studio e correções em torno de function calling com provedores compatíveis com OpenAI e parsing de JSON.
As liberações anteriores delineiam as mudanças maiores:
- v1.11.0 (21/10/2025) introduziu um novo assistente de setup e um sistema de configuração redesenhado, junto com suporte mais amplo a provedores e um caminho de instalação Docker com comando único. Também menciona busca dinâmica de modelos e melhorias em várias interfaces e experiência do desenvolvedor.
- v1.12.0 (27/12/2025) é uma redefinição arquitetônica: remove o LangChain em favor de uma implementação customizada para streaming, geração e comportamento específico de provedor. Também renomeia “providers” (provedores) para “connections” (conexões), adiciona melhorias na interface e renderização de código e move mais capacidade para as próprias abstrações do projeto (incluindo function calling melhorado em relação às abordagens de parsing anteriores).
- Anteriormente, a v1.10.0 (20/03/2025) adicionou uploads de arquivos (PDF, TXT, DOCX), adicionou um parâmetro keep_alive para Ollama, adicionou uma classe de agente de metabusca para melhorar a manutenibilidade e criação de modo de foco, e adicionou funcionalidade de busca automática de imagem e vídeo.
No lado de branding, a renomeação para Vane aconteceu em 09/03/2026 no master (feat(app): rename to 'vane'), atualizando tanto a nomenclatura da base de código quanto os artefatos Docker.
E o projeto não parou de evoluir depois da liberação de dezembro de 2025. Commits da branch master em 08-09/04/2026 incluem trabalho descrito como “atualizado modo de pesquisa profunda, gerenciamento de contexto” e novas mudanças de execução de busca e relacionadas a scraping. Em outras palavras, a parte de “mecanismo de busca com IA” ainda está sendo iterada ativamente, não congelada atrás de tags de liberação.