Hospedagem própria do Perplexica - com Ollama
Executando um serviço estilo Copilot localmente? Fácil!
Isso é muito emocionante! Em vez de chamar o Copilot ou o Perplexity.ai e contar a todos o que você busca, agora você pode hospedar um serviço similar no seu próprio PC ou laptop!
A Perplexica é um sistema semelhante ao Copilot e ao Perplexity.ai.
- Você faz uma pergunta
- A IA pesquisa na internet as respostas (você pode especificar onde pesquisar: artigos acadêmicos, textos, YouTube, Reddit…)
- Em seguida, a IA resume tudo o que encontrou
- Depois apresenta o resultado com referências aos sites originais
- Também há uma lista de imagens e vídeos do YouTube à direita
- E perguntas de acompanhamento prontas para você clicar, se quiser explorar o tópico um pouco mais
Esses sistemas são hospedados na nuvem e pertencem a algumas corporações (por exemplo, Microsoft ou Meta). A Perplexica é um software de Código Aberto que você pode hospedar no seu PC ou laptop potente.
A mesma base de código upstream agora é distribuída como Vane; Início Rápido do Vane (Perplexica 2.0) com Ollama e llama.cpp cobre as imagens Docker atuais, o SearxNG e os caminhos de inferência local se você estiver alinhado com o projeto renomeado.
Para uma comparação mais ampla do Ollama local com vLLM, Docker Model Runner, LocalAI e provedores de nuvem—including trade-offs de custo e infraestrutura—consulte Hospedagem de LLM: Infraestrutura Local, Auto-Hospedada e em Nuvem Comparadas.
Aqui vemos a resposta da Perplexica com o modelo de chat llama3.1 8b q6 e o modelo de embedding jina - para a pergunta Quem é Elon Musk?
A Perplexica consiste em vários módulos:
- SearxNG - Metamotor de busca. Ele chamará mais de 10 outros motores de busca para obter os resultados, para que a Perplexica possa combiná-los. O SearxNG é muito configurável por si só; você pode ligar e desligar cada motor e adicionar novos. Mas para nossos propósitos, a configuração padrão funciona bem.
- Backend e Frontend da Perplexica. Tecnicamente, estes são dois módulos separados; um fornece a API, o outro é a IU (Interface do Usuário).
- Serviço Ollama - que não faz parte do projeto Perplexica, mas se você quiser hospedar seus LLMs localmente, o Ollama é a única maneira de usá-los.
Então, a instalação do sistema completo consiste em duas grandes etapas:
- Instalar o Ollama + baixar os modelos do Ollama
- Instalar a Perplexica junto com o SearxNG
Instalando o Ollama
Para começar com o Ollama, siga estes passos:
Instale o Ollama executando o script:
curl -fsSL https://ollama.com/install.sh | sh
Diga ao Ollama para baixar seu LLM favorito. Se for o Llama3.1 8b q4 - execute o script:
ollama pull llama3.1:latest
Baixe a versão mais recente do Nomic-Embed-Text para usar como modelo de embedding (se for o seu favorito) usando:
ollama pull nomic-embed-text:latest
Edite o arquivo de serviço do Ollama executando:
sudo systemctl edit ollama.service
Adicione as seguintes linhas para expor o Ollama à rede (a Perplexica precisa se conectar a ele de dentro do Docker):
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Recarregue o daemon systemd e reinicie o serviço Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Verifique se o Ollama foi iniciado com sucesso:
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
Para uma descrição detalhada de como instalar, atualizar e configurar o Ollama, consulte: Instalar e configurar o Ollama
Para detalhes sobre usar outros modelos do Ollama com a Perplexica, consulte a seção ‘Instalando outros modelos do Ollama’ abaixo.
Instalando a Perplexica
Instalei a Perplexica dockerizada no Linux, mas um docker-compose muito similar pode ser usado no Windows ou Mac.
Vamos lá!
Começando com Docker (Recomendado) Certifique-se de que o Docker esteja instalado e em execução no seu sistema.
Clone o repositório da Perplexica:
git clone https://github.com/ItzCrazyKns/Perplexica.git
Após clonar, navegue até o diretório contendo os arquivos do projeto.
cd Perplexica
Renomeie o arquivo sample.config.toml para config.toml. Se você pretende atualizar a Perplexica posteriormente - para fazer git pull neste repositório - então basta copiar o arquivo sample.config.toml para config.toml
cp sample.config.toml config.toml
Edite o arquivo de configuração:
nano config.toml
Para configurações Docker, você precisa preencher apenas os seguintes campos:
OLLAMA: Sua URL de API do Ollama.
Você deve inseri-la como http://host.docker.internal:PORT_NUMBER.
Se você instalou o Ollama na porta 11434 (que é a padrão), use http://host.docker.internal:11434. Para outras portas, ajuste conforme necessário.
Quando você ainda estiver no diretório da Perplexica, execute:
docker compose up -d
Isso baixará as imagens Docker do SearxNG e do node base, construirá duas imagens Docker da Perplexica e iniciará 3 contêineres. Aguarde alguns minutos para que a configuração seja concluída.
Você pode acessar a Perplexica em http://localhost:3000 no seu navegador web.
Vá para Configurações. Você sabe - o ícone da engrenagem no canto inferior esquerdo - e escolha seus modelos Ollama.

Aqui você vê o modelo de chat selecionado llama3.1:8b-instruct-q6_K (Llama 3.1 8b com quantização q6_K), e o modelo de embedding nomic-embed-text:137m-v1.5-fp16.
Você também pode selecionar o tema Claro ou Escuro, conforme preferir.
Opções de pesquisa da Perplexica (Clique no ícone do olho na caixa), no tema Escuro:

Instalando outros modelos do Ollama
Você já instalou os modelos llama3.1:latest e nomic-embed-text:latest na seção “Instalando o Ollama” anterior.
Você precisa apenas de um modelo para chat, mas há muitos modelos disponíveis. Eles se comportam de maneira ligeiramente diferente, é bom começar com os mais comuns: Llama3.1, Gemma2, Mistral Nemo ou Qwen2.
Modelos de Chat
O nome completo do modelo de chat que você viu na seção de instalação - llama3.1:latest é llama3.1:8b-text-q4_0. Isso significa que ele tem 8 bilhões de parâmetros e quantização 4_0. É rápido e relativamente pequeno (4.8GB), mas se sua GPU tiver mais memória, recomendo que você tente:
- llama3.1:8b-instruct-q6_K (6.7GB) - nos meus testes, mostrou uma resposta muito melhor, embora fosse um pouco mais lento.
- llama3.1:8b-instruct-q8_0 (8.5GB) - ou talvez este.
No geral, todos os modelos do grupo llama3.1:8b são relativamente rápidos.
Você pode baixar aqueles que recomendei testar com o script:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Em comparação com o Llama3.1:8b, o Gemma2 produz respostas mais concisas e artísticas. Tente estes:
# 9.8GB
ollama pull gemma2:9b-instruct-q8_0
# 14GB
ollama pull gemma2:27b-instruct-q3_K_L
Os modelos Mistral Nemo produzem respostas em algum lugar entre o gemma2 e o llama3.1.
# o padrão, 7.1GB
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10GB
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13GB
ollama pull mistral-nemo:12b-instruct-2407-q8_0
Você também pode querer tentar os modelos Qwen2:
# o padrão, 4.4GB
ollama pull qwen2:7b-instruct-q4_0
# 8.1GB
ollama pull qwen2:7b-instruct-q8_0
Os modelos que mais gostei foram: llama3.1:8b-instruct-q6_K e mistral-nemo:12b-instruct-2407-q8_0.
Para verificar os modelos que o Ollama tem no repositório local:
ollama list
Para remover algum modelo desnecessário:
ollama rm qwen2:7b-instruct-q4_0 # por exemplo
Modelos de Embedding
Você pode pular a instalação destes, a Perplexica já possui 3 modelos de embedding pré-instalados: BGE Small, GTE Small e Bert bilingual. Eles funcionam bem, mas você pode querer tentar outros modelos de embedding.
Na seção de instalação do Ollama acima, você instalou o modelo de embedding nomic-embed-text:latest, é um bom modelo, mas recomendo que você também tente:
ollama pull jina/jina-embeddings-v2-base-en:latest
# e
ollama pull bge-m3:567m-fp16
Gostei mais do resultado do jina/jina-embeddings-v2-base-en:latest, mas veja por si mesmo.
Instalação de Rede da Perplexica
Se você instalá-lo em um servidor de rede, então antes de
docker compose up -d
ou se você já estiver executando a Perplexica e precisar reconstruir as imagens:
# Pare e remova todos os contêineres (!!! apenas se necessário)
docker compose down --rmi all
Insira o endereço IP do seu servidor Perplexica no docker-compose.yaml: depois, antes de
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << aqui
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << aqui
depends_on:
- perplexica-backend
Agora inicie os contêineres Perplexica e SearxNG:
docker compose up -d
Ou reconstrua e inicie:
docker compose up -d --build
Atualizando a Perplexica
Perplexica em execução no Docker:
# Pare e remova todos os contêineres (!!! apenas se necessário)
docker compose down --rmi all
# navegue até a pasta do projeto
# onde você clonou a perplexica durante a instalação
cd Perplexica
# puxe as atualizações
git pull
# Atualize e Reconstrua os Contêineres Docker:
docker compose up -d --build
Para instalações não Docker, consulte: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
Q: O que é a Perplexica?
-
A: A Perplexica é um mecanismo de busca de IA auto-hospedado gratuito e uma alternativa aos sistemas Perplexity.ai e Copilot que permite aos usuários executar seu próprio mecanismo de busca localmente em seus computadores.
-
Q: Quais são os passos para instalar e configurar a Perplexica com o Ollama?
-
A: Os passos incluem instalar o Ollama, baixar os modelos e depois instalar a Perplexica.
-
Q: Quais opções de personalização estão disponíveis na Perplexica?
-
A: As opções incluem escolher modelos diferentes como LLama 3.1, Mistral Nemo ou Gemma2, configurar modelos de embedding locais e explorar várias opções de pesquisa, como notícias, artigos acadêmicos, vídeos do YouTube e fóruns do Reddit.
-
Q: Qual modelo do Ollama usar com a Perplexica?
-
A: Os melhores resultados que obtivemos em nossos testes foram quando executamos a Perplexica com llama3.1:8b-instruct-q6_K e jina/jina-embeddings-v2-base-en:latest.
Para ver como o Ollama (o backend típico da Perplexica) se encaixa com o vLLM, Docker Model Runner, LocalAI e provedores de nuvem, verifique nosso guia Hospedagem de LLM: Infraestrutura Local, Auto-Hospedada e em Nuvem Comparadas.