Mittelstufe 18 minRAG

PrivateGPT v2: Dokumenten-Chatbot, zu 100 % privat

PrivateGPT v2 ist ein zu 100 % privater Dokumenten-Chatbot, mit dem Sie über Ihre PDF-, Word- und Markdown-Dateien chatten können, ohne dass ein einziges Byte Ihren Rechner verlässt. Version 2 hat ihre integrierte LLM-Engine aufgegeben und setzt stattdessen auf Ollama: Die Qualität einer gut umgesetzten RAG-Lösung bleibt erhalten, alle über Ollama verfügbaren Modelle lassen sich nutzen, und der Software-Stack wird radikal vereinfacht. Dieser Leitfaden behandelt die Installation, die Anbindung an Ollama und drei konkrete berufliche Anwendungsfälle (Personalwesen, Recht, Buchhaltung).

Von Mohamed Meguedmi·Aktualisierung 2026-08-27·Unter Windows, macOS und Linux getestet

#Warum PrivateGPT v2 für einen Chatbot mit lokalen Dokumenten?

Der Bedarf ist typisch: Fragen in natürlicher Sprache zu einer Sammlung interner Dokumente (Verträge, Lohnabrechnungen, Rechnungen, Protokolle) stellen zu können, ohne diese Daten an OpenAI, Anthropic oder Google zu senden. Genau darauf zielt PrivateGPT seit der ersten Version ab, die 2023 veröffentlicht wurde.

Version 2 des Projekts hat einen klaren Schnitt gemacht: keine integrierte LLM-Engine mehr, keine interne Verwaltung der Quantisierung mehr. Stattdessen überlässt PrivateGPT v2 die Generierung einem externen Backend – in den meisten Fällen Ollama. Dadurch lässt sich das Projekt wesentlich leichter warten und bietet ohne spezielle Konfiguration Zugriff auf die gesamte Ollama-Modellbibliothek (Qwen, Gemma, Granite, Mistral usw.).

100% lokal
Alles läuft auf Ihrem Rechner. Keine Telemetrie, keine ausgehenden Anfragen, sobald die Modelle heruntergeladen sind.
Gradio-Oberfläche enthalten
Eine Weboberfläche öffnet sich auf localhost und ist bereit für Chats mit Ihren Dokumenten — Sie müssen kein eigenes Frontend zusammenbauen.
OpenAI-kompatible API
Der PrivateGPT-Server stellt auch REST-Endpunkte bereit, deren Format dem von OpenAI ähnelt. Sie sind nützlich, wenn Sie ihn in eine selbst entwickelte Anwendung integrieren möchten.
Unterstützte Formate
PDF, DOCX, PPTX, MD, TXT, HTML, EPUB, CSV und mehrere weitere Formate über die zugrunde liegenden LlamaIndex-Loader.
i
Architektur aus zwei Blöcken
PrivateGPT v2 = RAG-Pipeline (Chunking, Embeddings, Vector Store, Retrieval, Prompt Assembly) + Gradio-UI. Ollama = LLM-Inferenzmotor. Beide kommunizieren lokal über HTTP auf Port 11434.

#Voraussetzungen

Das RAG-Local-Kit

Ihre Dokumente, Ihre KI: ein zuverlässiges lokales RAG für Ihre PDFs, Notizen und E-Mails – ohne Daten in die Cloud zu senden.

  • Lebenslanger Online-Zugang
  • PDF + Dateien
  • Erstattung binnen 30 Tagen
Python 3.11
PrivateGPT v2 unterstützt offiziell nur Python 3.11. Mit 3.12+ funktionieren einige Abhängigkeiten weiterhin nicht.
Poetry
Das Projekt verwendet Poetry, um seine Abhängigkeiten mit Extras (ui, llms-ollama, embeddings-ollama, vector-stores-qdrant) zu verwalten.
Ollama installiert und aktiv
Ollama-Daemon unter http://localhost:11434 erreichbar. Falls Sie ihn noch nicht haben, installieren Sie ihn zuerst — die Installation dauert 3 Minuten.
Mindestens 8 GB RAM
Mit 16 GB lässt sich komfortabel arbeiten. Wenn Sie ein 8B–9B-Modell in Q4 über Ollama in den VRAM laden, rechnen Sie zusätzlich mit 5 bis 7 GB Speicherbedarf auf der GPU.
GPU empfohlen (optional)
Eine RTX 3060 mit 12 GB oder eine leistungsstärkere Grafikkarte ermöglicht die Nutzung von 8B–14B-Modellen mit angemessener Antwortzeit. Ohne GPU bleiben Sie bei 3B-Modellen (Granite 4.2 3B oder Qwen 3.5 2B).
→
Ollama nicht installiert?
Folgen Sie zunächst unserem Ollama-Installationsleitfaden für Ihr Betriebssystem und kehren Sie dann hierher zurück. PrivateGPT v2 setzt voraus, dass der Befehl "ollama run" bereits funktioniert.

#1. PrivateGPT v2 installieren

Das Projekt befindet sich auf GitHub unter zylon-ai/private-gpt. Man klont das Repository, installiert Poetry, falls das noch nicht geschehen ist, und installiert anschließend die Abhängigkeiten mit den Extras, die zum gewählten Backend passen.

Repository klonen
git clone https://github.com/zylon-ai/private-gpt.git
cd private-gpt
Poetry installieren (falls nicht vorhanden)
curl -sSL https://install.python-poetry.org | python3 -
# Ajoutez ~/.local/bin au PATH si ce n'est pas déjà fait
PrivateGPT mit den Ollama-Extras installieren
poetry install --extras "ui llms-ollama embeddings-ollama vector-stores-qdrant"

Dieser Befehl installiert vier Gruppen optionaler Zusatzpakete: die Gradio-UI, den Ollama-Client für LLMs, den Ollama-Client für Embeddings und Qdrant als eingebettete lokale Vektordatenbank. Die Installation dauert je nach Ihrer Verbindung 5 bis 15 Minuten – es gibt viele wissenschaftliche Abhängigkeiten (numpy, scipy, transformers).

!
Python 3.12 und 3.13: Vorsicht
Zum Zeitpunkt, zu dem diese Zeilen geschrieben werden, sind noch nicht alle Builds einiger nativer Abhängigkeiten (insbesondere llama-index und der tokenizers-Komponenten) für 3.12+ veröffentlicht. Wenn Poetry Kompilierungsfehler meldet, erstellen Sie eine eigene virtuelle Umgebung mit Python 3.11: "pyenv install 3.11.9 && pyenv local 3.11.9".

#2. Ollama als Backend für LLM und Embeddings konfigurieren

PrivateGPT v2 verwendet ein System mit YAML-Profilen in settings/. Das Profil ollama wird über die Umgebungsvariable PGPT_PROFILES aktiviert.

Zunächst laden wir die beiden benötigten Modelle herunter: ein Generierungsmodell und ein Embedding-Modell. Für Französisch ist Qwen 3.5 9B im Jahr 2026 die passende Standardwahl als LLM (6,6 GB, 256k Kontext, Apache-2.0-Lizenz), und nomic-embed-text bleibt eine hervorragende Wahl als leichtgewichtiges mehrsprachiges Embedding-Modell.

Vorbereiten der Modelle in Ollama
# LLM de génération
ollama pull qwen3.5:9b

# Modèle d'embeddings (137M, ~280 Mo)
ollama pull nomic-embed-text

Anschließend prüft man die im Repository enthaltene Datei settings/settings-ollama.yaml. Sie muss auf die richtigen Modellnamen und die richtige Ollama-URL verweisen:

settings/settings-ollama.yaml
llm:
  mode: ollama
  max_new_tokens: 512
  context_window: 8192

embedding:
  mode: ollama

ollama:
  llm_model: qwen3.5:9b
  embedding_model: nomic-embed-text
  api_base: http://localhost:11434
  embedding_api_base: http://localhost:11434
  request_timeout: 120.0

vectorstore:
  database: qdrant

qdrant:
  path: local_data/private_gpt/qdrant
→
Kontextfenster
context_window: 8192 ist ein vernünftiger Kompromiss für den Einstieg mit Qwen 3.5 9B (dessen Kontextfenster bis zu 256k reicht). Auf einer GPU mit mehr VRAM erhöhen Sie den Wert auf 16384 oder 32768, um längere Dokumente ohne allzu starke Aufteilung zu verarbeiten. Achtung: Der VRAM-Verbrauch des KV-Caches steigt schnell an.

#3. Server und UI starten

  1. 01
    Prüfen, ob Ollama läuft
    Geben Sie im Terminal „ollama list“ ein. Wenn der Befehl die Liste der Modelle zurückgibt, ist der Daemon aktiv. Andernfalls starten Sie im separaten Terminal „ollama serve“.
  2. 02
    Profil ollama aktivieren
    Exportieren Sie im Terminal, in dem Sie PrivateGPT starten werden, die Variable PGPT_PROFILES=ollama. Damit weisen Sie das Projekt an, settings-ollama.yaml zusätzlich zu settings.yaml zu laden und dessen Einstellungen zu überschreiben.
  3. 03
    Server starten
    Führen Sie im Stammverzeichnis des Repositorys „PGPT_PROFILES=ollama make run“ aus. Der Server startet auf Port 8001, und Gradio öffnet die Benutzeroberfläche unter derselben Adresse.
  4. 04
    UI öffnen
    Besuchen Sie http://localhost:8001 im Browser. Sie landen auf einer Chat-Oberfläche mit einem Seitenpanel zum Hochladen von Dokumenten.
Start-Befehl
PGPT_PROFILES=ollama make run

Beim ersten Start sehen Sie in den Logs, dass PrivateGPT Ollama kontaktiert, um zu prüfen, ob die angegebenen Modelle verfügbar sind. Fehlt ein Modell, stoppt der Server mit einer eindeutigen Meldung — laden Sie das fehlende Modell mit ollama pull herunter und starten Sie den Server anschließend erneut.

#4. Dokumente indexieren

Die Gradio-Oberfläche bietet einen Tab "Ingest", in den Sie Ihre Dateien per Drag-and-drop ziehen können. Im Hintergrund teilt PrivateGPT jedes Dokument in Chunks auf (standardmäßig ~1024 Tokens mit einer Überlappung von 200), berechnet die Embeddings über Ollama und speichert alles in Qdrant.

PDF
Textextraktion mit pypdf. Gescannte PDFs (die nur Bilder enthalten) werden nicht per OCR verarbeitet – verwenden Sie vor dem Einlesen ein Tool wie ocrmypdf.
DOCX / PPTX
Wird von den LlamaIndex-Loadern nativ unterstützt. Tabellen und Listen bleiben als Klartext erhalten.
Markdown / TXT / HTML
Sofortige Indexierung; dieses Format funktioniert in der Praxis am besten für RAG.
CSV
Jede Zeile wird zu einem Chunk. Nützlich für FAQ-Datenbanken oder fachspezifische Datenauszüge.
!
Zeit für die Indexierung einplanen
Bei der Datenaufnahme wird Ollama aufgerufen, um die Embeddings Dokument für Dokument zu berechnen. Bei reinem CPU-Betrieb sollten Sie mit etwa 5 Sekunden pro PDF-Seite rechnen. Auf der GPU geht es nahezu sofort. Planen Sie für die Aufnahme von 500 PDFs großzügig Zeit ein und starten Sie die Stapelverarbeitung über die API statt per Drag-and-drop.
Stapelimport über das CLI-Skript
# Depuis la racine du repo private-gpt
python scripts/ingest_folder.py /chemin/vers/mes/documents \
  --watch  # surveille en continu les nouveaux fichiers

#Konkrete berufliche Anwendungsfälle

#Personalwesen: Gehaltsabrechnungen und Tarifverträge abfragen

Typischer Fall: Eine Personalabteilung mit 200 monatlichen Lohnabrechnungen, die als PDF archiviert sind, sowie dem Tarifvertrag der Branche (oft über 100 Seiten). PrivateGPT v2 ermöglicht es einem Mitarbeiter der Personalabteilung, Fragen wie „Welchen Koeffizienten hat Frau Dupont im Jahr 2025?“ oder „Was sagt der Tarifvertrag zu freien Tagen wegen eines kranken Kindes?“ zu stellen.

Empfohlenes Modell
Qwen 3.5 9B Q4 reicht für die Extraktion von Fakten aus. Für die juristische Auslegung der Vereinbarung wechseln Sie zu Mistral Small 24B (gut auf Französisch, 14 GB) oder Qwen 3.8 27B (18 GB, 262k Kontext), sofern genügend VRAM vorhanden ist.
Aufteilung
Für die Lohnabrechnungen (1 Seite) entspricht ein Chunk einem Dokument. Bei der Konvention funktioniert das Chunking nach Abschnitt (Titel H2/H3) besser als das Chunking nach Tokens.
Datenschutz
Genau hier macht PrivateGPT v2 den Unterschied: Gehaltsabrechnungen sollten niemals über einen Cloud-Dienst laufen, auch nicht im „Enterprise“-Modus.

#Rechtsbereich: ein Vertragsportfolio analysieren

Typischer Fall: eine Rechtsabteilung mit einigen hundert Kunden- und Lieferantenverträgen als PDF, teilweise eingescannt. Häufige Fragen: „Welche Verträge laufen in den nächsten 6 Monaten ab?“, „Welche Kündigungsklausel gilt für den ACME-Vertrag?“, „Welche enthalten eine Exklusivitätsklausel?“.

Vorverarbeitung
Führen Sie vor der Ingestion ocrmypdf auf den Scans aus. Ohne OCR sind diese PDF-Dateien für das Retrieval unsichtbar.
Empfohlenes Modell
Mistral Small 24B oder Qwen 3.8 27B für hochwertiges juristisches Schlussfolgern auf Französisch. Qwen 3.5 9B reicht für die reine Suche aus.
Systemprompt
Legen Sie einen Systemprompt fest, der dazu verpflichtet, in jeder Antwort den Vertragsnamen und die Klauselnummer zu nennen — sonst neigt das Modell dazu, Informationen ohne Quellenangaben zusammenzufassen.
i
Immer die Quellen prüfen
Die Gradio-UI von PrivateGPT v2 zeigt die abgerufenen Chunks unter der Antwort an. Für einen seriösen juristischen Einsatz sollten Sie die Antworten als Hinweise behandeln und stets die zugrunde liegende Textstelle überprüfen – RAG ist eine unterstützte Recherche, keine automatisch erstellte Rechtsauskunft.

#Buchhalter: Einen Ordner mit Rechnungen und Kontoauszügen abfragen

Typischer Fall: ein Buchhaltungsbüro, das einen Bestand aus Lieferantenrechnungen und Bankauszügen eines Kunden (PDF + CSV) abfragen möchte. Gesuchte Antworten: "Wie hoch ist der Gesamtbetrag der Free Mobile-Rechnungen im Jahr 2025?", "Gibt es eine unbezahlte Rechnung beim Lieferanten X?".

Eine wichtige Einschränkung
RAG aggregiert nicht von sich aus: Es findet die relevanten Passagen, summiert aber bei großen Datenmengen nicht fehlerfrei. Für exakte Analysen exportieren Sie die CSV-Datei mit den Rechnungen in ein dafür vorgesehenes Werkzeug und verwenden Sie PrivateGPT für den qualitativen Kontext.
Empfohlenes Format
CSV-Dateien aus der Buchhaltung werden zeilenweise indexiert — das ist gut für die Suche nach einzelnen Einträgen, schlecht für Berechnungen. Fügen Sie für jeden Monat eine PDF-Zusammenfassung hinzu, wenn das LLM einen Gesamtüberblick erhalten soll.
Modell
Qwen 3.5 9B (auch in Q8, 11 GB) ist im Umgang mit Zahlen und beim Lesen von Tabellen sehr leistungsfähig im Vergleich zu einem kleinen 3B-Modell. Wenn Sie eine RTX 4070 mit 12 GB oder mehr haben, ist es hier die Standardwahl.

#Behebung häufiger Probleme

"Connection refused" beim Start
Der Ollama-Daemon läuft nicht. Prüfen Sie dies mit "curl http://localhost:11434" – Sie müssen "Ollama is running" sehen.
Sehr langsame Antworten
Entweder läuft Ollama auf der CPU (überprüfen Sie mit "ollama ps" – Spalte PROCESSOR), oder Ihr context_window ist zu hoch. Reduzieren Sie auf 4096, um zu testen.
"Model not found"
Der Modellname in settings-ollama.yaml muss exakt dem Modell entsprechen, das von "ollama list" aufgelistet ist. Achten Sie auf die Quantisierungstags: qwen3.5:9b ≠ qwen3.5:9b-q8_0.
Unterschiedliche Embeddings bei der Ingestion und bei der Abfrage
Wenn Sie nach der Ingestion ein anderes Embedding-Modell wählen, müssen Sie neu indexieren. Löschen Sie local_data/private_gpt/qdrant/ und starten Sie die Ingestion erneut.
Gradio-Oberfläche nicht erreichbar
Wenn Sie auf einem entfernten Gerät sind, starten Sie mit "PGPT_PROFILES=ollama python -m private_gpt" und aktualisieren Sie den Host in settings.yaml (server.host: 0.0.0.0).

#Weiterführende Informationen

PrivateGPT v2 ist ein hervorragender Einstieg in lokales RAG für Dokumente, aber nur ein Baustein. Einige Ansatzpunkte, um darauf aufzubauen:

RAG ohne Programmieren mit Open WebUI oder AnythingLLM
Wenn Ihnen die Installation von PrivateGPT aufwendig erscheint (Poetry, Python 3.11), bietet Open WebUI eine vergleichbare RAG-Erfahrung und lässt sich einfacher mit Docker bereitstellen.
Leistungsfähige französische Embeddings
nomic-embed-text erfüllt seinen Zweck, aber auf Französisch spezialisierte Modelle wie Solon oder BGE-M3 liefern bessere Ergebnisse bei französischen juristischen oder administrativen Inhalten.
Erweiterte Chunking-Strategien
Chunking nach Abschnitten (Markdown-Überschriften, DOCX-Struktur) ist bei strukturierten Korpora dem Chunking mit fester Tokenanzahl deutlich überlegen – so lässt sich die Relevanz leicht verbessern.
Hat Ihnen dieser Guide geholfen?

Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.