Selbsthosting von Perplexica – mit Ollama

Einen Copilot-ähnlichen Dienst lokal ausführen? Einfach!

Inhaltsverzeichnis

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

Was es ist

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

  • Sie stellen eine Frage
  • Die KI durchsucht das Internet nach Antworten (Sie können angeben, wo gesucht werden soll: wissenschaftliche Arbeiten, Schreiben, YouTube, Reddit…)
  • Dann fasst die KI alle gefundenen Ergebnisse zusammen
  • Danach präsentiert sie das Ergebnis mit Verweisen auf die ursprünglichen Webseiten
  • Außerdem eine Liste von Bildern und YouTube-Videos auf der rechten Seite
  • Auch Folgefragen, die Sie anklicken können, wenn Sie das Thema etwas weiter erkunden möchten

Diese Systeme werden in der Cloud gehostet und gehören zu einigen Unternehmen (zum Beispiel Microsoft oder Meta).
Perplexica ist eine Open-Source-Software, die Sie auf Ihrem PC oder leistungsstarken Laptop hosten können.
Für eine umfassendere Vergleichsanalyse zwischen lokalem Ollama und vLLM, Docker Model Runner, LocalAI und Cloud-Anbietern – einschließlich Kosten- und Infrastrukturkompromisse – siehe LLM-Hosting: Lokal, Selbstgehostet & Cloud-Infrastruktur Verglichen.

perplexica response with llama3.1 8b q6 and jina embeddings Hier sehen wir die Antwort von Perplexica mit Chat-Modell llama3.1 8b q6 und jina Embedding-Modell – auf die Frage „Wer ist Elon Mask?“

Perplexica besteht aus mehreren Modulen:

  1. SearxNG – Metasuchmaschine. Sie ruft 10+ andere Suchmaschinen auf, um Ergebnisse zu erhalten, sodass Perplexica sie 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 gut.
  2. Perplexica-Backend und -Frontend. Technisch sind dies zwei separate Module, eines bietet die API, das andere die Benutzeroberfläche.
  3. Ollama-Service – Dies ist nicht Teil des Perplexica-Projekts, aber wenn Sie Ihre LLMs lokal hosten möchten, ist Ollama die einzige Möglichkeit, sie zu verwenden.

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

  1. Ollama installieren + Ollama-Modelle herunterladen
  2. Perplexica zusammen mit SearxNG installieren

Ollama installieren

Um mit Ollama zu beginnen, folgen Sie diesen Schritten:

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

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

Sagen Sie Ollama, um Ihr Lieblings-LLM herunterzuladen. Wenn es Llama3.1 8b q4 ist – führen Sie das Skript aus:

ollama pull llama3.1:latest

Ziehen Sie die neueste Version von Nomic-Embed-Text herunter, um sie als Embedding-Modell zu verwenden (wenn es Ihr Lieblingsmodell ist), mit:

ollama pull nomic-embed-text:latest

Bearbeiten Sie die Ollama-Service-Datei, indem Sie folgendes ausführen:

sudo systemctl edit ollama.service

Fügen Sie die folgenden Zeilen hinzu, um Ollama über das Netzwerk zugänglich zu machen (Perplexica muss von innen im Docker darauf zugreifen können):

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

Laden Sie den systemd-Daemon neu und starten Sie den Ollama-Service 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

Für eine detaillierte Beschreibung, wie Sie Ollama installieren, aktualisieren und konfigurieren, siehe: Ollama installieren und konfigurieren

Für weitere Informationen zu anderen Ollama-Modellen mit Perplexica siehe den Abschnitt „Andere Ollama-Modelle installieren“ weiter unten.

Perplexica installieren

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

Los geht’s!

Start mit Docker (Empfohlen)

Stellen Sie sicher, dass Docker auf Ihrem System installiert und ausgeführt wird.

Klonen Sie das Perplexica-Repository:

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

Nach dem Klonen navigieren Sie in den Ordner, der 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 – indem Sie git pull in dieses Repository durchführen – kopieren Sie einfach die Datei sample.config.toml in config.toml

cp sample.config.toml config.toml

Bearbeiten Sie die Konfigurationsdatei:

nano config.toml

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

OLLAMA: Ihre Ollama-API-URL.

Sie geben sie als http://host.docker.internal:PORT_NUMBER ein.

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

Wenn Sie immer noch im Perplexica-Verzeichnis sind, führen Sie aus:

docker compose up -d

Es wird SearxNG und die Basis-Node-Docker-Images herunterladen, zwei Perplexica-Docker-Images erstellen und drei Container starten. Warten Sie einige Minuten, bis die Installation abgeschlossen ist.

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

Gehen Sie zu Einstellungen. Sie wissen – das Zahnrädchen-Icon unten links, und wählen Sie Ihre Ollama-Modelle aus

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 Licht- oder Dunkelthema wählen, je nachdem, was Ihnen besser gefällt.

Perplexica-Suchoptionen (Klicken Sie auf dieses Auge im Box-Icon), im Dunkelthema: perplexica search options

Andere Ollama-Modelle installieren

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

Sie benötigen nur ein Modell für den Chat, aber es gibt viele Modelle zur Verfügung. Sie verhalten sich leicht unterschiedlich, es ist gut, mit den am häufigsten verwendeten zu beginnen: Llama3.1, Gemma2, Mistral Nemo oder Qwen2.

Chat-Modelle

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

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

Im Allgemeinen sind alle Modelle aus der Gruppe llama3.1:8b relativ schnell.

Sie können die, die ich empfohlen habe, mit dem folgenden Skript ausprobieren:

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

Im Vergleich zu Llama3.1:8b erzeugt Gemma2 kürzere und künstlerischere Antworten. Probieren Sie diese aus:

# 9,8 GB
ollama pull gemma2:9b-instruct-q8_0

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

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

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

Sie könnten auch die Qwen2-Modelle ausprobieren

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

# 8,1 GB
ollama pull qwen2:7b-instruct-q8_0

Die Modelle, die ich am meisten mag, sind: llama3.1:8b-instruct-q6_K und mistral-nemo:12b-instruct-2407-q8_0.

Um die Modelle zu überprüfen, die Ollama lokal in der Repository hat:

ollama list

Um ein nicht benötigtes Modell zu entfernen:

ollama rm qwen2:7b-instruct-q4_0 # beispielsweise

Embedding-Modelle

Sie können den Installieren dieser überspringen, Perplexica hat bereits drei Embedding-Modelle vorinstalliert: BGE Small, GTE Small und Bert bilingual. Sie funktionieren nicht schlecht, aber Sie könnten andere Embedding-Modelle ausprobieren.

Im Abschnitt zur Ollama-Installation oben haben Sie das nomic-embed-text:latest Embedding-Modell installiert, es ist ein gutes Modell, aber ich würde empfehlen, auch folgende auszuprobieren:

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

Ich mag das Ergebnis von jina/jina-embeddings-v2-base-en:latest am meisten, aber probieren Sie es selbst aus.

Netzwerk-Installation von Perplexica

Wenn Sie es auf einem Netzwerkserver installieren, dann vor dem

docker compose up -d

oder wenn Sie Perplexica bereits laufen haben und die Bilder neu erstellen müssen

# Stoppen Sie es und entfernen Sie alle Container (!!! nur wenn Sie sie nicht benötigen)
docker compose down --rmi all

Fügen Sie die IP-Adresse Ihres Perplexica-Servers in die docker-compose.yaml ein: dann vor

nano docker-compose.yaml
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 jetzt 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 Sie es und entfernen Sie alle Container (!!! nur wenn Sie sie nicht benötigen)
docker compose down --rmi all

# navigieren Sie zum Projektordner
# wo Sie Perplexica während der Installation geklont haben
cd Perplexica

# ziehen Sie die Updates
git pull

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

Für nicht-Docker-Installationen siehe: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md

Häufig gestellte Fragen (FAQ)

  • Frage: Was ist Perplexica?

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

  • Frage: Welche Schritte sind zur Installation und Einrichtung von Perplexica mit Ollama erforderlich?

  • Antwort: Die Schritte umfassen die Installation von Ollama, das Herunterladen der Modelle und anschließend die Installation von Perplexica.

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

  • Antwort: Optionen umfassen das Auswählen verschiedener Modelle wie LLama 3.1, Mistral Nemo oder Gemma2, das Einrichten lokaler Embedding-Modelle und das Erkunden verschiedener Suchoptionen wie Nachrichten, wissenschaftliche Arbeiten, YouTube-Videos und Reddit-foren.

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

  • Antwort: Die besten Ergebnisse haben wir in unseren Tests erzielt, als wir Perplexica mit llama3.1:8b-instruct-q6_K und jina/jina-embeddings-v2-base-en:latest laufen ließen.

Um zu sehen, wie Ollama (typischerweise der Backend-Server von Perplexica) mit vLLM, Docker Model Runner, LocalAI und Cloud-Anbietern zusammenarbeitet, siehe unsere LLM-Hosting: Lokal, Selbstgehostet & Cloud-Infrastruktur Verglichen-Anleitung.