Auto-hospedagem do Perplexica - com Ollama
Executando um serviço do tipo copilot localmente? Fácil!
Isso é muito emocionante!
Em vez de chamar o copilot ou perplexity.ai e contar ao mundo inteiro o que você está buscando, agora você pode hospedar um serviço semelhante no seu próprio PC ou laptop!
O que é
Perplexica é um sistema semelhante ao Copilot e ao Perplexity.ai.
- Você faz uma pergunta
- A IA pesquisa a internet por respostas (você pode especificar onde pesquisar: artigos acadêmicos, escrita, YouTube, Reddit…)
- Em seguida, a IA resumirá tudo o que encontrou
- Depois, apresentará o resultado com referências aos sites originais
- Também uma lista de imagens e vídeos do YouTube à direita
- Além disso, 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). Perplexica é um software de código aberto que você pode hospedar no seu PC ou laptop poderoso. Para uma comparação mais ampla entre o Ollama local e o vLLM, Docker Model Runner, LocalAI e provedores de nuvem — incluindo trade-offs de custo e infraestrutura — veja LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.
Aqui vemos a resposta do Perplexica com o modelo de chat llama3.1 8b q6 e o modelo de embedding da Jina — para a pergunta Quem é Elon Mask?
Perplexica é composto por vários módulos
- SearxNG - motor de metapesquisa. Ele chamará 10+ outros motores de busca para obter os resultados, então o perplexica pode combiná-los. 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 do Perplexica. Técnicamente, esses são dois módulos separados, um fornece a API, outro é a 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 inteiro consiste em dois grandes passos:
- Instalar o Ollama + baixar os modelos do Ollama
- Instalar o Perplexica junto com o SearxNG
Instalando o Ollama
Para começar com o Ollama, siga estas etapas:
Instale o Ollama executando o script:
curl -fsSL https://ollama.com/install.sh | sh
Diga ao Ollama para baixar seu modelo favorito de LLM. Se for Llama3.1 8b q4 — execute o script:
ollama pull llama3.1:latest
Baixe a versão mais recente do Nomic-Embed-Text para usá-lo como modelo de embedding (se for 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 (o Perplexica precisa se conectar a ele dentro do docker)
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Recarregue o daemon do systemd e reinicie o serviço do 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, veja: Instale e configure o Ollama
Para detalhes sobre como usar outros modelos do Ollama com o Perplexica, veja a seção ‘Instalando outros modelos do Ollama’ abaixo.
Instalando o Perplexica
Instalei o Perplexica em um ambiente dockerizado no Linux, mas um docker-compose muito semelhante pode ser usado no Windows ou no Mac.
Vamos começar!
Começando com o Docker (Recomendado) Certifique-se de que o Docker esteja instalado e em execução no seu sistema.
Clone o repositório do Perplexica:
git clone https://github.com/ItzCrazyKns/Perplexica.git
Após clonar, navegue até o diretório que contém os arquivos do projeto.
cd Perplexica
Renomeie o arquivo sample.config.toml para config.toml. Se você planeja atualizar o Perplexica posteriormente — para fazer um git pull dentro desse repositório — então apenas copie 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 com Docker, você precisa preencher apenas os seguintes campos:
OLLAMA: URL da API do seu Ollama.
Você deve inseri-lo 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.
Enquanto ainda estiver no diretório do Perplexica, execute:
docker compose up -d
Ele vai baixar as imagens do docker do SearxNG e do nó base, construir duas imagens do docker do Perplexica e iniciar 3 containers. Espere alguns minutos para que a instalação seja concluída.
Você pode acessar o Perplexica em http://localhost:3000 no seu navegador.
Vá para Configurações. Você sabe — o ícone de engrenagem no canto inferior esquerdo, e escolha seus modelos do 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, dependendo do que preferir mais.
Opções de busca do Perplexica (clique nesse olho no ícone da 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” anteriormente.
Você precisa apenas de um modelo para conversa, mas há muitos modelos disponíveis. Eles se comportam de forma ligeiramente diferente, é bom começar com os mais comuns: Llama3.1, Gemma2, Mistral Nemo ou Qwen2.
Modelos de conversa
O nome completo do modelo de conversa 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,8 GB), mas se seu GPU tiver mais memória, eu recomendaria que você experimente
- llama3.1:8b-instruct-q6_K (6,7 GB) — em meus testes, ele mostrou muito melhor resposta, embora fosse um pouco mais lento.
- llama3.1:8b-instruct-q8_0 (8,5 GB) — ou talvez este.
De forma geral, todos os modelos do grupo llama3.1:8b são relativamente rápidos.
você pode puxar aqueles que recomendei para tentar com o script:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Comparando com Llama3.1:8b, o Gemma2 produz respostas mais concisas e artísticas. Tente esses:
# 9,8 GB
ollama pull gemma2:9b-instruct-q8_0
# 14 GB
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,1 GB
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10 GB
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13 GB
ollama pull mistral-nemo:12b-instruct-2407-q8_0
Você também pode querer experimentar os modelos Qwen2
# o padrão, 4,4 GB
ollama pull qwen2:7b-instruct-q4_0
# 8,1 GB
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 quais modelos 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 desses, o Perplexica já tem 3 modelos de embedding pré-instalados: BGE Small, GTE Small e Bert bilingue. Eles funcionam razoavelmente bem, mas você pode querer experimentar outros modelos de embedding.
Na seção de instalação do Ollama acima você instalou o nomic-embed-text:latest modelo de embedding, é um bom modelo, mas recomendaria 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 de jina/jina-embeddings-v2-base-en:latest, mas veja por si mesmo.
Instalação de Rede do Perplexica
Se você instalar em um servidor de rede, então antes do
docker compose up -d
ou se você já estiver executando o Perplexica e precisar reconstruir as imagens
# Pare-o e remova todos os contêineres (!!! se precisar apenas dele)
docker compose down --rmi all
Coloque o endereço IP do seu servidor perplexica no docker-compose.yaml: depois 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 do Perplexica e do SearxNG:
docker compose up -d
Ou reconstrua e inicie:
docker compose up -d --build
Atualizando o Perplexica
Perplexica rodando em docker:
# Pare-o e remova todos os contêineres (!!! se precisar apenas dele)
docker compose down --rmi all
# navegue até a pasta do projeto
# onde você clonou o perplexica durante a instalação
cd Perplexica
# puxe as atualizações
git pull
# Atualize e Reconstrua os Contêineres do Docker:
docker compose up -d --build
Para instalações não-docker, veja: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
Perguntas Frequentes
-
P: O que é o Perplexica?
-
R: O Perplexica é um motor de busca gratuito auto-hospedado e uma alternativa ao perplexity.ai e aos sistemas do Copilot que permite aos usuários executar seu próprio motor de busca localmente em seu computador.
-
P: Quais são as etapas para instalar e configurar o Perplexica com o Ollama?
-
R: As etapas incluem instalar o Ollama, baixar os modelos, depois instalar o Perplexica.
-
P: Quais opções de personalização estão disponíveis no Perplexica?
-
R: As opções incluem escolher diferentes modelos como LLama 3.1, Mistral Nemo ou Gemma2, configurar modelos de embedding locais e explorar várias opções de busca, como notícias, artigos acadêmicos, vídeos do YouTube e fóruns do Reddit.
-
P: Qual modelo do Ollama usar com o Perplexica?
-
R: Os melhores resultados que obtivemos em nossos testes foram ao executar o 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 do Perplexica) se encaixa com o vLLM, Docker Model Runner, LocalAI e provedores de nuvem, consulte nosso guia LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.