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 à Perplexity.ai.
- Você faz uma pergunta
- A IA busca na internet por respostas (você pode especificar onde buscar: artigos acadêmicos, escrita, YouTube, Reddit…)
- Depois, a IA resumirá tudo o que encontrou
- Em seguida, 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 tema 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 em um laptop poderoso.
Aqui vemos a resposta do Perplexica com o modelo de chat llama3.1 8b q6 e o modelo de embedding da Jina - à pergunta
Quem é Elon Musk?
Perplexica consiste em 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. 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 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 é 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 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 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
Descrição detalhada sobre 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 dockerizado no Linux, mas um docker-compose muito semelhante pode ser usado no Windows ou no Mac.
Vamos lá!
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 puxar as imagens do SearxNG e do nó base do docker, construir duas imagens do Perplexica do docker e iniciar 3 contêineres. Espere alguns minutos para que a configuração seja concluída.
Você pode acessar o Perplexica em http://localhost:3000 no seu navegador da web.
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 escolher 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 chat, mas há muitos modelos disponíveis. Eles se comportam um pouco 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,8 GB), mas se seu GPU tiver mais memória eu recomendaria que você tente
- 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.
Em 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 estas:
# 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 tentar 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 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 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 tentar 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 eu 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 do 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 da
docker compose up -d
ou se você já estiver executando o Perplexica e precisar reconstruir as imagens
# Pare e remova todos os contêineres (!!! se precisar apenas dele)
docker compose down --rmi all
Coloque o endereço IP do seu servidor do perplexica no docker-compose.yaml: então 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 do Perplexica e do SearxNG:
docker compose up -d
Ou reconstrua e inicie:
docker compose up -d --build
Atualizando o Perplexica
Perplexica rodando no docker:
# Pare 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 e auto-hospedado de IA e uma alternativa ao perplexity.ai e aos sistemas Copilot que permite aos usuários executar seu próprio motor de busca localmente no seu computador.
-
P: Quais são as etapas para instalar e configurar o Perplexica com o Ollama?
-
R: As etapas incluem instalar o Ollama, puxar 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 quando executamos o Perplexica com llama3.1:8b-instruct-q6_K e jina/jina-embeddings-v2-base-en:latest.
Links Úteis
- Modelos de Embedding e Reordenamento Qwen3 no Ollama: Desempenho de Estado da Arte
- Teste: Como o Ollama está usando o desempenho da CPU Intel e núcleos eficientes
- Como o Ollama lida com solicitações paralelas
- Testando Deepseek-r1 no Ollama
- Instruções de instalação no site do Perplexica: https://github.com/ItzCrazyKns/Perplexica
- Expondo o Perplexica à rede
- Comparação de desempenho de velocidade de LLM
- Instale o Ollama e Mova os Modelos do Ollama para uma Pasta Diferente
- Comparando as habilidades de resumo de LLM
- Comparação de LLM: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 e Phi
- Dica rápida do Ollama