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 ähnlich wie Copilot und Perplexity.ai ist.

  • 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 alles zusammen, was sie gefunden hat
  • Dann präsentiert sie das Ergebnis mit Verweisen auf die ursprünglichen Webseiten
  • Auch eine Liste von Bildern und YouTube-Videos auf der rechten Seite
  • Auch Folgefragen bereit, 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.

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 die Ergebnisse zu erhalten, sodass Perplexica sie kombinieren kann. SearxNG ist sehr konfigurierbar, Sie können jedes Gerät ein- oder ausschalten und neue hinzufügen. Aber für unsere Zwecke funktioniert die Standardkonfiguration gut.
  2. Perplexica Backend und Frontend. Technisch sind dies zwei separate Module, eines bietet eine API, das andere eine UI
  3. Ollama-Service – das 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. Installieren Sie Ollama + laden Sie Ollama-Modelle herunter
  2. Installieren Sie Perplexica zusammen mit SearxNG

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, Ihr Lieblings-LLM herunterzuladen. Wenn es Llama3.1 8b q4 ist – führen Sie das Skript aus:

ollama pull llama3.1:latest

Laden 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 im Netzwerk zu exponieren (Perplexica muss von innen aus dem 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

Eine detaillierte Beschreibung, wie Ollama installiert, aktualisiert und konfiguriert wird, finden Sie hier: Installieren und konfigurieren Sie Ollama

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

Perplexica installieren

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

Los geht’s!

Getting Started with 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 – um git pull in dieses Repository durchzufü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 sollten sie als http://host.docker.internal:PORT_NUMBER eingeben.

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

Wenn Sie sich immer noch im Perplexica-Verzeichnis befinden, 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 Zahnrad-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 Dunkelmodus: perplexica search options

Installation anderer Ollama-Modelle

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

Sie benötigen nur ein Modell für den Chat, aber es gibt zahlreiche Modelle. 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 in der Installationsschnittstelle 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, zu versuchen

  • 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 produziert 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 produzieren 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 anzuzeigen, die Ollama lokal in der Repository hat:

ollama list

Um ein nicht benötigtes Modell zu entfernen:

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

Embedding-Modelle

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

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

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

Ich mochte das Ergebnis von jina/jina-embeddings-v2-base-en:latest am meisten, aber sehen Sie selbst.

Netzwerk-Installation von Perplexica

Wenn Sie es auf einem Netzwerkserver installieren, dann vor

docker compose up -d

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

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

Fügen Sie die IP-Adresse Ihres Perplexica-Servers in 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

jetzt starten Sie 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 es benötigen)
docker compose down --rmi all

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

# Pullen Sie die Updates
git pull

# Aktualisieren und neu erstellen Sie die Docker-Container:
docker compose up -d --build

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

FAQ

  • Q: Was ist Perplexica?

  • A: 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.

  • Q: 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 anschließend die Installation von Perplexica.

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

  • A: Optionen umfassen die Auswahl unterschiedlicher 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.

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

  • A: 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.