Self-hosting Perplexica - con Ollama
Eseguire un servizio nello stile di Copilot in locale? Facile!
Questo è molto eccitante! Invece di chiamare Copilot o Perplexity.ai e raccontare a tutti del mondo cosa stai cercando, ora puoi ospitare un servizio simile sul tuo PC o laptop!
Cosa è
Perplexica è un sistema simile a Copilot e Perplexity.ai.
- Chiedi una domanda
- L’AI cerca su Internet le risposte (puoi specificare dove cercare: articoli accademici, scrittura, YouTube, Reddit…)
- Poi l’AI riassume tutto ciò che ha trovato
- Poi presenta il risultato con i riferimenti ai siti web originali
- Anche un elenco di immagini e video YouTube a destra
- Anche domande successive pronte per essere cliccate, se vuoi esplorare l’argomento un po’ di più
Questi sistemi sono ospitati in cloud e appartengono a alcune aziende (ad esempio, Microsoft o Meta). Perplexica è un software Open Source che puoi ospitare sul tuo PC o laptop potente. Per un confronto più ampio tra l’hosting locale di Ollama con vLLM, Docker Model Runner, LocalAI e fornitori di cloud—inclusi i compromessi di costo e infrastruttura—vedi LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.
Qui vediamo la risposta di Perplexica con il modello di chat llama3.1 8b q6 e il modello di embedding jina - alla domanda Chi è Elon Musk?
Perplexica è composto da diversi moduli
- SearxNG - motore di ricerca metasearch. Chiamerà 10+ altri motori di ricerca per ottenere i risultati, quindi Perplexica può combinarli. SearxNG è molto configurabile, puoi attivare o disattivare ogni motore e aggiungerne di nuovi. Ma per i nostri scopi la configurazione predefinita funziona bene.
- Backend e Frontend di Perplexica. Tecnicamente questi sono due moduli separati, uno fornisce l’API, l’altro è l’interfaccia utente
- Servizio Ollama - non fa parte del progetto Perplexica, ma se vuoi ospitare i tuoi LLM localmente, Ollama è l’unico modo per usarli.
Quindi l’installazione di tutto il sistema consiste in due grandi passaggi:
- Installare Ollama + scaricare i modelli Ollama
- Installare Perplexica insieme a SearxNG
Installazione di Ollama
Per iniziare con Ollama, segui questi passaggi:
Installa Ollama eseguendo lo script:
curl -fsSL https://ollama.com/install.sh | sh
Dì a Ollama di scaricare il tuo modello LLM preferito. Se è Llama3.1 8b q4 - esegui lo script:
ollama pull llama3.1:latest
Scarica l’ultima versione di Nomic-Embed-Text per usarla come modello di embedding (se è il tuo preferito) utilizzando
ollama pull nomic-embed-text:latest
Modifica il file del servizio Ollama eseguendo
sudo systemctl edit ollama.service
Aggiungendo le seguenti righe per esporre Ollama alla rete (Perplexica deve connettersi a esso all’interno di Docker)
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Ricarica il demone systemd e riavvia il servizio Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Verifica che Ollama sia stato avviato correttamente
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
Per una descrizione dettagliata su come installare, aggiornare e configurare Ollama, vedi: Installare e configurare Ollama
Per i dettagli su l’uso di altri modelli Ollama con Perplexica vedi la sezione ‘Installazione di altri modelli Ollama’ di seguito.
Installazione di Perplexica
Ho installato Perplexica dockerizzato su Linux, ma un docker-compose simile può essere utilizzato su Windows o Mac.
Andiamo!
Inizio con Docker (Consigliato) Assicurati che Docker sia installato e in esecuzione sul tuo sistema.
Clona il repository di Perplexica:
git clone https://github.com/ItzCrazyKns/Perplexica.git
Dopo aver clonato, naviga nella directory che contiene i file del progetto.
cd Perplexica
Rinomina il file sample.config.toml in config.toml. Se intendi aggiornare Perplexica in seguito - per eseguire git pull in questo repository - allora copia il file sample.config.toml in config.toml
cp sample.config.toml config.toml
Modifica il file di configurazione
nano config.toml
Per le configurazioni Docker, devi riempire solo i seguenti campi:
OLLAMA: L’URL dell’API di Ollama.
Dovresti inserirlo come http://host.docker.internal:PORT_NUMBER.
Se hai installato Ollama sulla porta 11434 (che è la predefinita), usa http://host.docker.internal:11434. Per altre porte, aggiusta di conseguenza.
Mentre sei ancora nella directory Perplexica, esegui:
docker compose up -d
Questo scaricherà le immagini Docker di SearxNG e del nodo base, costruirà due immagini Docker di Perplexica e avvierà 3 container. Aspetta alcuni minuti affinché l’installazione venga completata.
Puoi accedere a Perplexica a http://localhost:3000 nel tuo browser web.
Vai alle Impostazioni. Sai, l’icona del Cog in basso a sinistra, e scegli i tuoi modelli Ollama

Qui puoi vedere il modello di chat selezionato llama3.1:8b-instruct-q6_K (Llama 3.1 8b con quantizzazione q6_K), e il modello di embedding nomic-embed-text:137m-v1.5-fp16.
Puoi anche selezionare il tema Light o Dark a seconda di ciò che preferisci di più.
Le opzioni di ricerca di Perplexica (Clicca su questo occhio nell’icona della scatola), nel tema scuro:

Installazione di altri modelli Ollama
Hai già installato i modelli llama3.1:latest e nomic-embed-text:latest nella sezione precedente “Installazione di Ollama”.
Hai bisogno solo di un modello per la chat, ma ci sono molti modelli disponibili. Si comportano leggermente diversamente, è buono iniziare con i più comuni: Llama3.1, Gemma2, Mistral Nemo o Qwen2.
Modelli di chat
Il nome completo del modello di chat che hai visto nella sezione di installazione - llama3.1:latest è llama3.1:8b-text-q4_0. Questo significa che ha 8 miliardi di parametri e quantizzazione 4_0. È veloce e relativamente piccolo (4,8 GB), ma se la tua GPU ha un po’ più di memoria ti consiglio di provare
- llama3.1:8b-instruct-q6_K (6,7 GB) - nei miei test ha mostrato molto meglio risposta, anche se un po’ più lenta.
- llama3.1:8b-instruct-q8_0 (8,5 GB) - o forse questa.
In generale tutti i modelli del gruppo llama3.1:8b sono relativamente veloci.
puoi scaricare quelli che ti ho consigliato di provare con lo script:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Confrontandoli con Llama3.1:8b, i modelli Gemma2 producono risposte più concise e artistiche. Prova questi:
# 9,8 GB
ollama pull gemma2:9b-instruct-q8_0
# 14 GB
ollama pull gemma2:27b-instruct-q3_K_L
I modelli Mistral Nemo producono risposte che si trovano tra Gemma2 e Llama3.1.
# il modello predefinito, 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
Potresti anche voler provare i modelli Qwen2
# il modello predefinito, 4,4 GB
ollama pull qwen2:7b-instruct-q4_0
# 8,1 GB
ollama pull qwen2:7b-instruct-q8_0
I modelli che ho apprezzato di più sono: llama3.1:8b-instruct-q6_K e mistral-nemo:12b-instruct-2407-q8_0.
Per controllare i modelli che Ollama ha nel repository locale:
ollama list
Per rimuovere alcuni modelli non necessari:
ollama rm qwen2:7b-instruct-q4_0 # ad esempio
Modelli di embedding
Puoi saltare l’installazione di questi, Perplexica ha già installati 3 modelli di embedding: BGE Small, GTE Small e Bert bilingue. Lavorano non male, ma potresti voler provare altri modelli di embedding.
Nella sezione di installazione di Ollama sopra hai installato il modello di embedding nomic-embed-text:latest, è un buon modello, ma ti consiglio di provare anche:
ollama pull jina/jina-embeddings-v2-base-en:latest
# e
ollama pull bge-m3:567m-fp16
Ho apprezzato di più il risultato del modello jina/jina-embeddings-v2-base-en:latest, ma vedrai per te stesso.
Installazione di rete di Perplexica
Se lo installi su un server di rete, allora prima del
docker compose up -d
o se stai già eseguendo Perplexica e hai bisogno di ricostruire le immagini
# Fermalo e rimuovi tutti i container (!!! se ne hai bisogno)
docker compose down --rmi all
Inserisci l’indirizzo IP del tuo server perplexica nel docker-compose.yaml: poi prima di
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << qui
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << qui
depends_on:
- perplexica-backend
ora avvia i container di Perplexica e SearxNG:
docker compose up -d
O ricostruisci e avvia:
docker compose up -d --build
Aggiornamento di Perplexica
Perplexica in esecuzione su Docker:
# Fermalo e rimuovi tutti i container (!!! se ne hai bisogno)
docker compose down --rmi all
# naviga nella cartella del progetto
# dove hai clonato perplexica durante l'installazione
cd Perplexica
# pull degli aggiornamenti
git pull
# Aggiornamento e Ricostruzione dei Container Docker:
docker compose up -d --build
Per le installazioni non Docker vedi: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
D: Cosa è Perplexica?
-
R: Perplexica è un motore di ricerca AI gratuito e autoospitato e un’alternativa a perplexity.ai e ai sistemi Copilot che consente agli utenti di eseguire il proprio motore di ricerca localmente sul proprio computer.
-
D: Quali sono i passaggi per installare e configurare Perplexica con Ollama?
-
R: I passaggi includono l’installazione di Ollama, il pull dei modelli, quindi l’installazione di Perplexica.
-
D: Quali opzioni di personalizzazione sono disponibili in Perplexica?
-
R: Le opzioni includono la scelta di diversi modelli come LLama 3.1, Mistral Nemo o Gemma2, l’impostazione di modelli di embedding locali e l’esplorazione di varie opzioni di ricerca come notizie, articoli accademici, video YouTube e forum Reddit.
-
D: Quale modello Ollama usare con Perplexica?
-
R: I migliori risultati ottenuti nei nostri test sono stati quando abbiamo eseguito Perplexica con llama3.1:8b-instruct-q6_K e jina/jina-embeddings-v2-base-en:latest.
Per vedere come Ollama (il backend tipico di Perplexica) si adatta a vLLM, Docker Model Runner, LocalAI e fornitori di cloud, consulta la nostra guida LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.
Link utili
- Istruzioni di installazione sul sito di Perplexica: https://github.com/ItzCrazyKns/Perplexica
- Esposizione di Perplexica alla rete
- Installare Ollama e spostare i modelli Ollama in una cartella diversa
- Confronto LLM: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 e Phi
- Scheda di riferimento Ollama