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).
#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.
#Voraussetzungen
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).
#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.
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).
#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.
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:
#3. Server und UI starten
- 01Prüfen, ob Ollama läuftGeben 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“.
- 02Profil ollama aktivierenExportieren 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.
- 03Server startenFü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.
- 04UI öffnenBesuchen Sie http://localhost:8001 im Browser. Sie landen auf einer Chat-Oberfläche mit einem Seitenpanel zum Hochladen von Dokumenten.
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.
- 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.
#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.
#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.
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.