Perplexica: un Perplexity auto-ospitato con il tuo LLM locale
Perplexity ha reso popolare un modo d'uso: porre una domanda in linguaggio naturale e ricevere una risposta sintetica con le fonti citate, anziché un elenco di link blu. Perplexica riproduce esattamente questo funzionamento, ma a casa tua: un motore di ricerca web open-source che interroga il web tramite SearXNG, poi fa redigere la risposta dal tuo LLM locale eseguito con Ollama. Questa guida mostra come configurare lo stack completo in Docker, spiega le modalità di ricerca (i famosi «focus») e illustra senza giri di parole ciò che si guadagna e ciò che si perde rispetto all'originale.
#Perché Perplexica piuttosto che Perplexity
Perplexity è un ottimo prodotto, ma è un servizio cloud: le tue richieste vengono inviate ai loro server, la versione gratuita è limitata e il modello che scrive le risposte non è sotto il tuo controllo. Perplexica inverte la logica. È un progetto open-source (licenza MIT, disponibile su GitHub) che orchestra tre componenti che ospiti tu stesso. Nessuna richiesta esce dalla tua rete, non c'è nulla da pagare e scegli tu il modello che risponde.
L'interesse non è solo ideologico. Un motore di risposte locale può interrogare fonti senza essere limitato da quote, funzionare in background in un homelab e fungere da componente di ricerca per altri strumenti attraverso la sua interfaccia. In compenso, la qualità dipende direttamente dal tuo modello locale e dal corretto funzionamento della tua istanza SearXNG — due punti su cui questa guida insiste.
#Stack Perplexica + SearXNG + Ollama
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
Tre componenti, ciascuno con un ruolo chiaro. Capire chi fa cosa rende molto più semplice risolvere i problemi quando una risposta è sbagliata: saprai quale dei tre esaminare.
- SearXNG
- Un metamotore di ricerca libero che aggrega i risultati di decine di motori (Google, Bing, DuckDuckGo, Wikipedia…) senza tracciamento. È questo componente a effettuare realmente le ricerche sul web. Perplexica non funziona senza di esso.
- Ollama
- Il daemon che rende disponibile il tuo LLM locale all'indirizzo http://localhost:11434. È lui a redigere la risposta finale a partire dalle fonti. Fornisce anche un modello di embedding per ordinare gli estratti in base alla pertinenza.
- Perplexica
- Il direttore d'orchestra e l'interfaccia web. Riformula la domanda, gestisce SearXNG, estrae il contenuto delle pagine, gestisce il riordinamento tramite embedding e compone il prompt finale inviato a Ollama.
#Prerequisiti
Niente di esotico, ma alcuni punti da tenere in considerazione riguardo all'hardware e alle versioni.
- Docker + Docker Compose
- L'intero stack viene distribuito in container. Sono sufficienti Docker Desktop (Windows/Mac) oppure Docker Engine con il plugin compose (Linux). È il metodo di installazione ufficiale consigliato.
- Ollama installato e avviato
- Il daemon deve essere in esecuzione e raggiungibile. Verifica con ollama list. Se Ollama è in esecuzione sulla macchina host e Perplexica in Docker, l'indirizzo da usare sarà http://host.docker.internal:11434, non localhost.
- Un modello di chat
- Un 7-8B in Q4_K_M (~5 GB di VRAM) è un livello minimo accettabile; un 14B (~9 GB) produce sintesi decisamente più affidabili. La qualità della risposta finale dipende direttamente da questa scelta.
- Un modello di embeddings
- Leggero e veloce, ad esempio nomic-embed-text. Serve esclusivamente al riordinamento interno, non alla redazione.
- ~5 GB di disco e un po' di RAM
- Per le immagini Docker (Perplexica + SearXNG) e la cache. I modelli, invece, sono gestiti separatamente da Ollama.
#Installazione Docker in 10 minuti
L'installazione ufficiale avviene attraverso il repository Git del progetto, che include un docker-compose.yaml già configurato per Perplexica e un'istanza SearXNG dedicata. Non devi installare SearXNG separatamente: il compose se ne occupa.
- 01Clonare il repositoryRecupera il progetto Perplexica da GitHub e posizionati nella cartella. Tutto il resto avviene lì.
- 02Creare il file di configurazioneIl repository fornisce un modello di configurazione sample.config.toml. Copialo in config.toml: è questo il file che Perplexica legge all'avvio per conoscere i tuoi backend.
- 03Verificare il file ComposeIl file docker-compose.yaml definisce tre servizi: perplexica (l'app), searxng e quanto necessario per la rete. Per impostazione predefinita, l'interfaccia web è esposta sulla porta 3000.
- 04Avviare lo stackIl comando docker compose up crea le immagini al primo avvio, poi avvia tutto. La prima volta, prevedi qualche minuto per scaricare e creare le immagini.
- 05Aprire l'interfacciaVai su http://localhost:3000. Se viene visualizzata la pagina della chat, metà del lavoro è fatta; resta da collegare i modelli.
#Collegare Ollama a Perplexica
Due modi per configurare i modelli: tramite il file config.toml prima dell'avvio, oppure tramite la schermata delle impostazioni dell'interfaccia web dopo l'avvio. L'interfaccia è più semplice per iniziare; il file è pratico per un deployment riproducibile.
Il punto sensibile è l'indirizzo di Ollama. Perplexica funziona in un contenitore; per esso, localhost indica il contenitore stesso, non la tua macchina. Se Ollama è installato sull'host, usa host.docker.internal (Windows/Mac, e Linux con l'opzione host corretta) al posto di localhost.
- 01Aprire le impostazioniNell'interfaccia web, l'icona Impostazioni dà accesso alla scelta dei fornitori di modelli. Seleziona Ollama come provider.
- 02Inserire l'URL di OllamaInserisci l'indirizzo dell'API (host.docker.internal:11434 da Docker). Perplexica interroga quindi Ollama ed elenca automaticamente i tuoi modelli disponibili.
- 03Scegliere il modello di chatSeleziona il modello che redigerà le risposte (ad es. qwen3.5:9b). È la leva n. 1 per la qualità.
- 04Scegliere il modello di embeddingScegli nomic-embed-text (o equivalente) per il riordinamento degli estratti. Senza embedding validi, l'ordinamento delle fonti si degrada.
- 05Porre una prima domandaProva con una domanda su un fatto recente. Se compaiono fonti numerate sotto la risposta, l'intera catena funziona.
#Le modalità focus: accademica, video, Reddit…
È la funzionalità distintiva di Perplexica. Invece di cercare ovunque allo stesso modo, scegli un «focus mode» che orienta SearXNG verso un tipo di fonte e adatta il modo di scrivere. La modalità giusta cambia radicalmente la pertinenza.
- All Mode
- La modalità predefinita: ricerca generalista su tutto il web. Da usare per domande aperte senza un ambito preciso.
- Academic Search
- Indirizza la ricerca verso fonti scientifiche e articoli di ricerca. Ideale per una revisione della letteratura o una domanda tecnica specialistica.
- Writing Assistant
- Una modalità senza ricerca web: Perplexica utilizza solamente il LLM per scrivere o riformulare. Utile quando non hai bisogno di fonti esterne.
- YouTube Search
- Si concentra sui video: la risposta si basa su contenuti YouTube pertinenti, con i relativi link. Utile per tutorial e dimostrazioni.
- Wolfram Alpha Search
- Per le domande di calcolo, scientifiche e relative a dati fattuali: la risposta si basa su Wolfram Alpha.
- Reddit Search
- Effettua ricerche nelle discussioni di Reddit: opinioni, esperienze d'uso, dibattiti della community. È prezioso per le domande su opinioni o prodotti.
#Qualità effettiva delle risposte
Diciamo la verità: con un piccolo modello locale, la sintesi è meno fluida e meno raffinata rispetto a quella dei modelli di punta che alimentano Perplexity. Ma la pipeline conta quanto il modello. Tre leve determinano il risultato finale.
- Dimensione del modello di chat
- È il fattore dominante. Un modello 7-8B scrive risposte corrette ma a volte superficiali; un modello 14B segue meglio le istruzioni di citazione e produce sintesi più curate. Passando a dimensioni maggiori, un modello 32B (~19 GB di VRAM) si avvicina a un'esperienza convincente.
- Lo stato di funzionamento di SearXNG
- Se alcuni motori sono bloccati o soggetti a rate-limit, SearXNG restituisce pochi risultati e la risposta si impoverisce di conseguenza. Una risposta scarsa deriva spesso da una mancanza di fonti, non dal LLM.
- Il contesto disponibile
- Perplexica inserisce estratti di più pagine nel prompt. Un modello con una finestra di contesto breve tronca le fonti e perde informazioni. Preferisci un modello con una finestra di contesto sufficientemente ampia (minimo 8k, di più se possibile).
#Rispetto a Perplexity: cosa si perde, cosa si guadagna
Perplexica non è un clone perfetto, e sostenerlo sarebbe disonesto. Ecco un bilancio realistico per decidere se ne vale la pena nel tuo caso.
- Si guadagna — privacy
- Nessuna richiesta esce dalla tua rete. Né l'argomento delle tue ricerche né le risposte passano attraverso terzi. Per attività di monitoraggio informativo su temi sensibili, è decisivo.
- Ci si guadagna — costi e quote
- Niente da pagare, nessun limite di richieste. Puoi eseguire tutte le ricerche che il tuo hardware riesce a gestire e integrarlo con altri strumenti senza costi per l'API.
- Si guadagna — controllo
- Scegli il modello, i motori interrogati tramite SearXNG e puoi ospitare tutto autonomamente in un homelab a lungo termine.
- Si perde — la finezza della scrittura
- I modelli cloud di Perplexity sono più grandi e più affinati. Con hardware modesto, la sintesi locale è più piatta e contiene più approssimazioni.
- Cosa si perde — la robustezza di una soluzione pronta all'uso
- Perplexity gestisce l'infrastruttura al posto tuo. Sul tuo sistema, se SearXNG raggiunge il limite di richieste o Ollama satura la VRAM, spetta a te diagnosticare e risolvere il problema.
- Perdiamo — alcune funzioni
- Nessuna app mobile rifinita, nessuna Pro Search in più passaggi altrettanto sviluppata, nessuna integrazione proprietaria. Perplexica copre l'essenziale, ma non offre tutta la comodità del prodotto commerciale.
#Risoluzione dei problemi comuni
- Perplexica non vede Ollama
- Quasi sempre è un problema di indirizzo. Da Docker, sostituisci localhost con host.docker.internal (e su Linux, aggiungi extra_hosts con host-gateway). Verifica che Ollama sia effettivamente in ascolto e, se necessario, consenti le connessioni da indirizzi diversi da localhost.
- Nessuna fonte nelle risposte
- SearXNG non restituisce nulla. Apri direttamente l'interfaccia SearXNG per testare una ricerca: se fallisce, alcuni motori sono bloccati o soggetti a rate-limit. Riduci il numero di motori attivi o aspetta.
- La lista dei modelli è vuota
- Perplexica interroga Ollama al caricamento dei parametri. Se la lista è vuota, l'URL dell'API è errato o Ollama non ha nessun modello. Verifica con ollama list dal lato host.
- Risposte molto lente
- Il modello di chat è probabilmente troppo grande per la tua VRAM e viene eseguito in parte sulla CPU. Passa a una quantizzazione più leggera (Q4_K_M) o a un modello più piccolo; verifica che la GPU venga effettivamente utilizzata.
- Errori di embedding
- Il modello di embedding non è selezionato o non è stato scaricato. Esegui ollama pull nomic-embed-text e selezionalo esplicitamente nelle impostazioni.
- La porta 3000 è già occupata
- Un altro servizio occupa la porta. Modifica la mappatura della porta nel docker-compose (ad es. 3001:3000) e ricarica lo stack.
#Per approfondire
La qualità di Perplexica dipende da quella del modello e dell'infrastruttura che lo supportano. Queste guide consolidano le fondamenta su cui si basa.
- Ollama: cos'è e come funziona
- Il daemon che serve il tuo modello di chat e i tuoi embedding sulla porta 11434 — la componente fondamentale per la qualità della redazione.
- Scegliere la quantizzazione
- Q4_K_M, Q5_K_M, Q8_0: capire il compromesso tra VRAM e qualità per scegliere il modello di sintesi giusto in base alla tua scheda grafica
- AnythingLLM: RAG pronto per la produzione in locale
- Per andare oltre la ricerca web e costruire un RAG sui tuoi documenti, con lo stesso backend Ollama.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.