Selbstgehostetes Perplexica – mit Ollama

Lokaler Betrieb eines Copilot-ähnlichen Services? Einfach!

Inhaltsverzeichnis

Das ist sehr aufregend! Anstatt Copilot oder perplexity.ai zu nutzen und der ganzen Welt mitzuteilen, wonach Sie suchen, können Sie nun einen ähnlichen Dienst auf Ihrem eigenen PC oder Laptop hosten!

Perplexica ist ein System, das Copilot und Perplexity.ai ähnelt.

  • Sie stellen eine Frage
  • Die KI sucht im Internet nach Antworten (Sie können festlegen, wo gesucht werden soll: wissenschaftliche Arbeiten, Texte, YouTube, Reddit…)
  • Anschließend fasst die KI alle gefundenen Informationen zusammen
  • Das Ergebnis wird mit Verweisen auf die ursprünglichen Webseiten präsentiert
  • Zudem gibt es eine Liste mit Bildern und YouTube-Videos auf der rechten Seite
  • Außerdem sind Folgefragen bereit, die Sie anklicken können, falls Sie das Thema weiter vertiefen möchten

Diese Systeme werden in der Cloud gehostet und gehören bestimmten Unternehmen (beispielsweise Microsoft oder Meta). Perplexica ist Open-Source-Software, die Sie auf Ihrem PC oder einem leistungsstarken Laptop hosten können.

Die gleiche Upstream-Codebasis wird nun als Vane verteilt; Vane (Perplexica 2.0) Quickstart mit Ollama und llama.cpp behandelt aktuelle Docker-Images, SearxNG und lokale Inferenz-Pfade, falls Sie sich dem umbenannten Projekt anschließen möchten.

Für einen umfassenden Vergleich von lokaler Ollama mit vLLM, Docker Model Runner, LocalAI und Cloud-Anbietern – einschließlich Kosten- und Infrastrukturnachteilen – siehe LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.

perplexica response with llama3.1 8b q6 and jina embeddings Hier sehen wir die Antwort von Perplexica mit dem Chat-Modell llama3.1 8b q6 und dem Jina-Embedding-Modell auf die Frage Who is Elon Mask?

Perplexica besteht aus mehreren Modulen:

  1. SearxNG – Metasuchmaschine. Sie ruft 10+ andere Suchmaschinen auf, um Ergebnisse zu erhalten, die Perplexica kombinieren kann. SearxNG ist sehr konfigurierbar; Sie können jede Suchmaschine aktivieren oder deaktivieren und neue hinzufügen. Für unsere Zwecke funktioniert die Standardkonfiguration jedoch gut.
  2. Perplexica Backend und Frontend. Technisch gesehen sind dies zwei separate Module: eines stellt die API bereit, das andere die Benutzeroberfläche (UI).
  3. Ollama-Dienst – dies ist kein Teil des Perplexica-Projekts, aber wenn Sie Ihre LLMs lokal hosten möchten, ist Ollama der einzige Weg, um sie zu nutzen.

Die Installation des gesamten Systems besteht aus zwei großen Schritten:

  1. Installieren Sie Ollama + Laden Sie Ollama-Modelle herunter
  2. Installieren Sie Perplexica zusammen mit SearxNG

Ollama installieren

Um mit Ollama zu beginnen, befolgen Sie diese Schritte:

Installieren Sie Ollama, indem Sie das Skript ausführen:

curl -fsSL https://ollama.com/install.sh | sh

Weisen Sie Ollama an, Ihr Lieblings-LLM herunterzuladen. Wenn es sich um Llama3.1 8b q4 handelt, führen Sie das Skript aus:

ollama pull llama3.1:latest

Ziehen Sie die neueste Version von Nomic-Embed-Text, um sie als Embedding-Modell zu verwenden (falls dies Ihr Favorit ist), mit:

ollama pull nomic-embed-text:latest

Bearbeiten Sie die Ollama-Dienstdatei, indem Sie ausführen:

sudo systemctl edit ollama.service

Fügen Sie die folgenden Zeilen hinzu, um Ollama dem Netzwerk zugänglich zu machen (Perplexica muss sich aus dem Docker-Container verbinden):

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

Laden Sie den systemd-Daemon neu und starten Sie den Ollama-Dienst neu:

sudo systemctl daemon-reload
sudo systemctl restart ollama

Überprüfen Sie, ob Ollama erfolgreich gestartet wurde:

systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager

Eine detaillierte Beschreibung, wie Ollama installiert, aktualisiert und konfiguriert wird, finden Sie unter: Install and configure Ollama

Für Details zur Verwendung anderer Ollama-Modelle mit Perplexica sehen Sie im Folgenden den Abschnitt „Andere Ollama-Modelle installieren".

Perplexica installieren

Ich habe dockerisierte Perplexica unter Linux installiert, aber ein sehr ähnliches docker-compose kann auch unter Windows oder Mac verwendet werden.

Los geht’s!

Einführung mit Docker (Empfohlen) Stellen Sie sicher, dass Docker auf Ihrem System installiert und läuft.

Klonen Sie das Perplexica-Repository:

git clone https://github.com/ItzCrazyKns/Perplexica.git

Navigieren Sie nach dem Klonen in das Verzeichnis, das die Projektdateien enthält.

cd Perplexica

Benennen Sie die Datei sample.config.toml in config.toml um. Wenn Sie Perplexica später aktualisieren möchten – also einen git pull in dieses Repository durchführen –, kopieren Sie einfach die Datei sample.config.toml auf config.toml:

cp sample.config.toml config.toml

Bearbeiten Sie die Konfigurationsdatei:

nano config.toml

Für Docker-Setups müssen Sie nur die folgenden Felder ausfüllen:

OLLAMA: Ihre Ollama-API-URL.

Sie sollten sie als http://host.docker.internal:PORT_NUMBER eingeben.

Wenn Sie Ollama auf Port 11434 installiert haben (das ist der Standard), verwenden Sie http://host.docker.internal:11434. Für andere Ports passen Sie dies entsprechend an.

Während Sie sich noch im Perplexica-Verzeichnis befinden, führen Sie aus:

docker compose up -d

Dadurch werden die Docker-Images von SearxNG und dem Basis-Node heruntergeladen, zwei Perplexica-Docker-Images erstellt und drei Container gestartet. Warten Sie einige Minuten, bis die Einrichtung abgeschlossen ist.

Sie können Perplexica in Ihrem Webbrowser unter http://localhost:3000 aufrufen.

Gehen Sie zu Einstellungen. Sie wissen schon – das Zahnrad-Symbol unten links – und wählen Sie Ihre Ollama-Modelle.

perplexica settings - configuring ollama models

Hier sehen Sie das ausgewählte Chat-Modell llama3.1:8b-instruct-q6_K (Llama 3.1 8b mit Quantisierung q6_K) und das Embedding-Modell nomic-embed-text:137m-v1.5-fp16.

Sie können auch das helle oder dunkle Thema auswählen, welches Sie mehr mögen.

Perplexica-Suchoptionen (Klicken Sie auf das Auge-Symbol im Kasten), im Dunklen Thema: perplexica search options

Andere Ollama-Modelle installieren

Sie haben bereits die Modelle llama3.1:latest und nomic-embed-text:latest im vorherigen Abschnitt „Ollama installieren" installiert.

Sie benötigen nur ein Modell für den Chat, aber es gibt viele Modelle zur Auswahl. Sie verhalten sich leicht unterschiedlich; es ist gut, mit den gängigsten zu beginnen: Llama3.1, Gemma2, Mistral Nemo oder Qwen2.

Chat-Modelle

Der vollständige Name des Chat-Modells, das Sie im Installationsteil gesehen haben – llama3.1:latest – lautet llama3.1:8b-text-q4_0. Das bedeutet, es hat 8 Milliarden Parameter und eine Quantisierung von 4_0. Es ist schnell und relativ klein (4,8 GB), aber wenn Ihre GPU etwas mehr Speicher hat, würde ich empfehlen, Folgendes auszuprobieren:

  • llama3.1:8b-instruct-q6_K (6,7 GB) – in meinen Tests zeigte es eine viel bessere Antwort, war jedoch etwas langsamer.
  • llama3.1:8b-instruct-q8_0 (8,5 GB) – oder vielleicht dieses hier.

Insgesamt sind alle Modelle der Gruppe llama3.1:8b relativ schnell.

Sie können die von mir empfohlenen Modelle mit dem Skript ziehen:

ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0

Im Vergleich zu Llama3.1:8b erzeugt Gemma2 prägnantere und kunstvollere Antworten. Probieren Sie diese aus:

# 9.8GB
ollama pull gemma2:9b-instruct-q8_0

# 14GB
ollama pull gemma2:27b-instruct-q3_K_L

Die Mistral Nemo-Modelle erzeugen Antworten irgendwo zwischen Gemma2 und Llama3.1.

# das Standardmodell, 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

Sie sollten auch die Qwen2-Modelle ausprobieren:

# das Standardmodell, 4.4GB
ollama pull qwen2:7b-instruct-q4_0

# 8.1GB
ollama pull qwen2:7b-instruct-q8_0

Die Modelle, die mir am besten gefallen haben, sind: llama3.1:8b-instruct-q6_K und mistral-nemo:12b-instruct-2407-q8_0.

Um zu überprüfen, welche Modelle Ollama im lokalen Repository hat:

ollama list

Um ein unnötiges Modell zu entfernen:

ollama rm qwen2:7b-instruct-q4_0 # zum Beispiel

Embedding-Modelle

Sie können die Installation dieser Modelle überspringen, da Perplexica vorinstallierte 3 Embedding-Modelle hat: BGE Small, GTE Small und Bert bilingual. Sie funktionieren ganz gut, aber Sie möchten vielleicht andere Embedding-Modelle ausprobieren.

Im Abschnitt „Ollama installieren" oben haben Sie das Embedding-Modell nomic-embed-text:latest installiert; es ist ein gutes Modell, aber ich würde empfehlen, auch Folgendes auszuprobieren:

ollama pull jina/jina-embeddings-v2-base-en:latest
# und 
ollama pull bge-m3:567m-fp16

Das Ergebnis von jina/jina-embeddings-v2-base-en:latest hat mir am besten gefallen, aber Sie sollten es selbst ausprobieren.

Netzwerkinstallation von Perplexica

Wenn Sie es auf einem Netzwerkserver installieren, führen Sie vor dem Befehl

docker compose up -d

aus oder, falls Perplexica bereits läuft und die Images neu erstellt werden müssen:

# Stoppen und alle Container entfernen (!!! falls Sie es nur brauchen)
docker compose down --rmi all

Geben Sie die IP-Adresse Ihres Perplexica-Servers in docker-compose.yaml ein: Dazu führen Sie vor

nano docker-compose.yaml

aus:

perplexica-frontend:
    build:
      context: .
      dockerfile: app.dockerfile
      args:
      - NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api   # << hier
      - NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001          # << hier
    depends_on:
      - perplexica-backend

Starten Sie nun die Perplexica- und SearxNG-Container:

docker compose up -d

Oder neu erstellen und starten:

docker compose up -d --build

Perplexica aktualisieren

Perplexica läuft auf Docker:

# Stoppen und alle Container entfernen (!!! falls Sie es nur brauchen)
docker compose down --rmi all

# navigieren Sie in das Projektverzeichnis
# wo Sie perplexica während der Installation geklont haben
cd Perplexica

# ziehen Sie die Updates
git pull

# Aktualisieren und Neu erstellen der Docker-Container:
docker compose up -d --build

Für Nicht-Docker-Installationen bitte sehen Sie unter: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md

FAQ

  • F: Was ist Perplexica?

  • A: Perplexica ist eine kostenlose, selbst gehostete KI-Suchmaschine und eine Alternative zu perplexity.ai und Copilot-Systemen, die es Benutzern ermöglicht, ihre eigene Suchmaschine lokal auf ihrem Computer zu betreiben.

  • F: Welche Schritte sind erforderlich, um Perplexica mit Ollama zu installieren und einzurichten?

  • A: Die Schritte umfassen die Installation von Ollama, das Herunterladen der Modelle und die Installation von Perplexica.

  • F: Welche Anpassungsoptionen sind in Perplexica verfügbar?

  • A: Optionen umfassen die Auswahl verschiedener Modelle wie LLama 3.1, Mistral Nemo oder Gemma2, die Einrichtung lokaler Embedding-Modelle und die Erkundung verschiedener Suchoptionen wie Nachrichten, wissenschaftliche Arbeiten, YouTube-Videos und Reddit-Foren.

  • F: Welches Ollama-Modell sollte mit Perplexica verwendet werden?

  • A: Die besten Ergebnisse in unseren Tests erzielten wir, als wir Perplexica mit llama3.1:8b-instruct-q6_K und jina/jina-embeddings-v2-base-en:latest betrieben.

Um zu sehen, wie Ollama (typisches Backend von Perplexica) mit vLLM, Docker Model Runner, LocalAI und Cloud-Anbietern zusammenpasst, überprüfen Sie unseren Leitfaden LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared.

Abonnieren

Neue Beiträge zu Systemen, Infrastruktur und KI-Engineering.