Självhyst Perplexica – med Ollama
Kör en Copilot-tjänst lokalt? Det är enkelt!
Det är väldigt spännande! Istället för att ringa Copilot eller perplexity.ai och berätta för hela världen vad du letar efter, kan du nu värdshålla en liknande tjänst på din egen PC eller bärbara dator!
Perplexica är ett system som liknar Copilot och Perplexity.ai.
- Du ställer en fråga
- AI:n letar efter svaren på internet (du kan specificera var den ska söka: akademiska artiklar, texter, YouTube, Reddit…)
- Sedan sammanfattar AI:n allt den har hittat
- Sedan presenteras resultatet med referenser till de ursprungliga webbplatserna
- Dessutom en lista med bilder och YouTube-videos till höger
- Och uppföljningsfrågor redo för att du ska klicka på, om du vill utforska ämnet lite mer
Dessa system är värdshållna i molnet och tillhör vissa bolag (till exempel Microsoft eller Meta). Perplexica är en Open Source-programvara du kan värdshålla på din PC eller kraftfulla bärbara dator.
Samma upstream-kodbas distribueras nu som Vane; Vane (Perplexica 2.0) Quickstart With Ollama and llama.cpp täcker aktuella Docker-images, SearxNG och lokala inferensvägar om du är med i det omnamnda projektet.
För en bredare jämförelse av lokal Ollama med vLLM, Docker Model Runner, LocalAI och molnleverantörer – inklusive kostnads- och infrastrukturell avvägning – se LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.
Här ser vi Perplexica:s svar med Chat-modellen llama3.1 8b q6 och jina Embedding-modellen – på frågan Vem är Elon Mask?
Perplexica består av flera moduler
- SearxNG - Metasökmotor. Den kommer att anropa 10+ andra sökmotorer för att få resultaten, så att Perplexica kan kombinera dem. SearxNG är mycket konfigurerbar i sig själv, du kan aktivera och inaktivera varje motor och lägga till nya. Men för våra ändamål fungerar standardkonfigurationen bra.
- Perplexica Backend och Frontend. Tekniskt sett är dessa två separata moduler, den ena tillhandahåller API, den andra är gränssnittet (UI).
- Ollama-tjänst - det är inte en del av Perplexica-projektet, men om du vill att dina LLM:ar ska vara värdshållna lokalt, är Ollama det enda sättet att använda dem.
Så installationen av hela systemet består av två stora steg:
- Installera Ollama + ladda ner Ollama-modeller
- Installera Perplexica tillsammans med SearxNG
Installation av Ollama
För att börja med Ollama, följ dessa steg:
Installera Ollama genom att köra skriptet:
curl -fsSL https://ollama.com/install.sh | sh
Berätta Ollama att den ska ladda ner din favorit-LLM. Om det är Llama3.1 8b q4 - kör skriptet:
ollama pull llama3.1:latest
Dra ner den senaste versionen av Nomic-Embed-Text för att använda som inbäddningsmodell (om det är din favorit) med
ollama pull nomic-embed-text:latest
Redigera Ollama-tjänstefilen genom att köra
sudo systemctl edit ollama.service
Lägg till följande rader för att exponera Ollama mot nätverket (Perplexica behöver ansluta till den från inuti docker)
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Ladda om systemd-daemonen och starta om Ollama-tjänsten:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Kontrollera att Ollama startade lyckat
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
En detaljerad beskrivning av hur man installerar, uppdaterar och konfigurerar Ollama hittar du här: Install and configure Ollama
För detaljer om att använda andra Ollama-modeller med Perplexica, se avsnittet ‘Installation av andra Ollama-modeller’ nedan.
Installation av Perplexica
Jag har installerat dockeriserad Perplexica på Linux, men mycket liknande docker-compose kan användas på Windows eller Mac.
Låt oss gå!
Kom igång med Docker (Rekommenderas) Se till att Docker är installerat och kör på ditt system.
Klona Perplexica-repositoriet:
git clone https://github.com/ItzCrazyKns/Perplexica.git
Efter kloning, navigera till mappen som innehåller projektfilerna.
cd Perplexica
Byt namn på filen sample.config.toml till config.toml. Om du tänker uppdatera Perplexica senare - genom att göra git pull i detta repositorium - då kopiera bara filen sample.config.toml till config.toml
cp sample.config.toml config.toml
Redigera konfigurationsfilen
nano config.toml
För Docker-installationer behöver du bara fylla i följande fält:
OLLAMA: Din Ollama API-URL.
Du ska ange den som http://host.docker.internal:PORT_NUMBER.
Om du installerade Ollama på port 11434 (det är standard), använd http://host.docker.internal:11434. För andra portar, justera motsvarande.
När du fortfarande är i Perplexica-mappen, kör:
docker compose up -d
Det kommer att dra ner SearxNG och basnode-docker-images, bygga två Perplexica-docker-images och starta 3 containrar. Vänta några minuter tills installationen är klar.
Du kan nå Perplexica på http://localhost:3000 i din webbläsare.
Gå till Inställningar. Du vet - kugghjulsikonen längst ner till vänster, och välj dina Ollama-modeller

Här ser du att Chat-modellen är vald: llama3.1:8b-instruct-q6_K (Llama 3.1 8b med kvantisering q6_K), och Embedding-modellen nomic-embed-text:137m-v1.5-fp16.
Du kan också välja Ljust eller Mörkt tema, vilket du föredrar.
Perplexica-sökalternativ (Klicka på detta öga-i-rutan-ikonen), i Mörkt tema:

Installation av andra Ollama-modeller
Du har redan installerat modellerna llama3.1:latest och nomic-embed-text:latest i avsnittet “Installation av Ollama” tidigare.
Du behöver bara en modell för chatt, men det finns många modeller tillgängliga. De beter sig lite olika, det är bra att börja med de vanligaste: Llama3.1, Gemma2, Mistral Nemo eller Qwen2.
Chat-modeller
Fullständigt namn på chat-modellen som du såg i installationsavsnittet - llama3.1:latest är llama3.1:8b-text-q4_0. Det betyder att den har 8 miljarder parametrar och kvantisering 4_0. Den är snabb och relativt liten (4.8GB), men om din GPU har lite mer minne skulle jag rekommendera att du provar
- llama3.1:8b-instruct-q6_K (6.7GB) - i mina test visade den mycket bättre svar, men var lite långsammare.
- llama3.1:8b-instruct-q8_0 (8.5GB) - eller kanske denna.
Totalt sett är alla modeller från llama3.1:8b-gruppen relativt snabba.
Du kan dra ner de jag rekommenderade att prova med skriptet:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Jämfört med Llama3.1:8b, producerar Gemma2 mer koncisa och konstnärliga svar. Prova dessa:
# 9.8GB
ollama pull gemma2:9b-instruct-q8_0
# 14GB
ollama pull gemma2:27b-instruct-q3_K_L
Mistral Nemo-modellerna producerar svar någonstans mellan gemma2 och llama3.1.
# den standarden, 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
Du kanske också vill prova Qwen2-modellerna
# den standarden, 4.4GB
ollama pull qwen2:7b-instruct-q4_0
# 8.1GB
ollama pull qwen2:7b-instruct-q8_0
De modeller jag gillade mest är: llama3.1:8b-instruct-q6_K och mistral-nemo:12b-instruct-2407-q8_0.
För att kontrollera vilka modeller Ollama har i lokalt repositorium:
ollama list
För att ta bort onödiga modeller:
ollama rm qwen2:7b-instruct-q4_0 # för exempel
Inbäddningsmodeller
Du kan hoppa över installation av dessa, Perplexica har förinstallerade 3 inbäddningsmodeller: BGE Small, GTE Small och Bert bilingual. De fungerar inte så dåligt, men du kanske vill prova andra inbäddningsmodeller.
I Ollama-installationsavsnittet ovan installerade du nomic-embed-text:latest-inbäddningsmodellen, det är en bra modell, men jag skulle rekommendera att du också provar:
ollama pull jina/jina-embeddings-v2-base-en:latest
# och
ollama pull bge-m3:567m-fp16
Jag gillade resultatet av jina/jina-embeddings-v2-base-en:latest mest, men se själv.
Nätverksinstallation av Perplexica
Om du installerar det på en nätverksserver, då innan
docker compose up -d
eller om du redan kör Perplexica och behöver bygga om bilderna
# Stoppa den och ta bort alla containrar (!!! bara om du behöver det)
docker compose down --rmi all
Sätt in din Perplexica-server-IP-adress i docker-compose.yaml: därefter innan
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << här
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << här
depends_on:
- perplexica-backend
Starta nu Perplexica och SearxNG-containrar:
docker compose up -d
Eller bygga om och starta:
docker compose up -d --build
Uppdatering av Perplexica
Perplexica som körs på docker:
# Stoppa den och ta bort alla containrar (!!! bara om du behöver det)
docker compose down --rmi all
# navigera till projekt mappen
# där du klonade Perplexica under installationen
cd Perplexica
# dra ner uppdateringarna
git pull
# Uppdatera och bygga om Docker-containrar:
docker compose up -d --build
För icke-docker-installationer, se: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
F: Vad är Perplexica?
-
S: Perplexica är en gratis, självvärdshållen AI-sökmotor och ett alternativ till perplexity.ai och Copilot-system som tillåter användare att köra sin egen sökmotor lokalt på sin dator.
-
F: Vilka är stegen för att installera och sätta upp Perplexica med Ollama?
-
S: Stegen inkluderar att installera Ollama, dra ner modellerna, och sedan installera Perplexica.
-
F: Vilka anpassningsalternativ finns i Perplexica?
-
S: Alternativ inkluderar att välja olika modeller som LLama 3.1, Mistral Nemo eller Gemma2, sätta upp lokala inbäddningsmodeller, och utforska olika sökalternativ som nyheter, akademiska artiklar, YouTube-videos och Reddit-forum.
-
F: Vilken Ollama-modell ska användas med Perplexica?
-
S: De bästa resultaten vi fick i våra test var när vi körde Perplexica med llama3.1:8b-instruct-q6_K och jina/jina-embeddings-v2-base-en:latest.
För att se hur Ollama (Perplexica:s typiska backend) passar ihop med vLLM, Docker Model Runner, LocalAI och molnleverantörer, kolla vår LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared-guide.