Skip to content
BotServBotServ
PDFChatbotRAGVektordatenbankOllamaAnythingLLMDokumentenanalyseLokale KI

PDF-Chatbot mit lokaler KI

Wie Du einen PDF-Chatbot mit lokaler KI baust. Dokumente indizieren, RAG einrichten und Fragen zu Deinen PDFs beantworten.

S

schutzgeist

4 min read
PDF-Chatbot beantwortet Fragen zu hochgeladenen Dokumenten

PDF-Chatbot mit lokaler KI

Was dieser Artikel behandelt

  • Was ein PDF-Chatbot macht und wozu er dient.
  • Wie Dokumente für KI aufbereitet werden.
  • Welche Tools für lokale PDF-Chatbots geeignet sind.
  • Wie Du eine einfache eigene Lösung mit Python aufbaust.

Einleitung: PDF-Chatbot mit lokaler KI

Ein PDF-Chatbot erlaubt es, Fragen zu Deinen PDF-Dokumenten zu stellen. Statt selbst durch hunderte Seiten zu scrollen, beantwortet das Modell gezielte Fragen und nennt Dir die passenden Stellen. Weil das Ganze lokal läuft, bleiben Deine Dokumente auf Deiner Hardware.

Der Kern ist RAG: Ein Sprachmodell bekommt nicht das ganze Dokument, sondern nur die passenden Abschnitte. Dazu werden Texte in kleine Teile zerlegt, in eine Vektordatenbank eingespeist und mit passenden Suchanfragen abgerufen.

Was brauchst Du für ein einfaches KI RAG-System?

Für einen lokalen PDF-Chatbot benötigst Du:

  • Ein lokales Sprachmodell wie Llama 3.2 über Ollama.
  • Ein Modell für Embeddings, zum Beispiel nomic-embed-text.
  • Eine Vektordatenbank wie Chroma, Qdrant oder SQLite mit Vektorsuche.
  • Eine Möglichkeit, PDFs in Text zu wandeln, zum Beispiel pymupdf oder pdfplumber.

Wer es bequem möchte, kann auch Tools wie AnythingLLM oder Open WebUI mit integriertem RAG nutzen. Beide unterstützen lokal laufende Modelle und bieten eine grafische Oberfläche.

PDFs in Text umwandeln

Python bietet mehrere Bibliotheken, um PDFs einzulesen.

pymupdf ist schnell und liefert oft saubere Ergebnisse:


import fitz  # PyMuPDF

def pdf_zu_text(pfad):
    text = []
    with fitz.open(pfad) as doc:
        for seite in doc:
            text.append(seite.get_text())
    return '\n'.join(text)

KI nutzen und “Programmieren” trotzdem verstehen

KI kann Dir heute viel Programmierarbeit abnehmen. Trotzdem solltest Du die Grundlagen der Programmierung verstehen, wenn Du regelmäßig mit KI-Systemen arbeitest. Nur so kannst Du generierten Code einschätzen, Fehler erkennen und gezielt Verbesserungen vornehmen. Besonders Python spielt im Umfeld von KI und Automatisierung eine wichtige Rolle.

Auf IRC-Coding.de findest Du zahlreiche praxisnahe Beiträge und Lernpfade rund um Programmierung, Python, APIs, Softwareentwicklung, KI-Programmierung, Vibe Coding und Cybersecurity. So kannst Du Dir genau das technische Grundwissen aneignen, das Du für den sinnvollen Einsatz von KI benötigst.

Zurück zum Thema

Für gescannte PDFs mit Bildern brauchst Du zusätzlich OCR, zum Beispiel Tesseract. Das erhöht den Aufwand, ist aber bei vielen Verträgen und Berichten nötig.

Texte in sinnvolle Stücke teilen

Ein langer Text muss in kleine Chunks aufgeteilt werden. Die Länge sollte groß genug sein, um Kontext zu erhalten, und klein genug, um noch passgenau gesucht werden zu können. Ein üblicher Wert liegt zwischen 200 und 500 Wörtern mit einer kleinen Überlappung.

Überlappungen sorgen dafür, dass Abschnitte nicht mitten im Satz abgeschnitten werden. Bei fachlichen Dokumenten ist das besonders wichtig, weil Fachbegriffe oft über mehrere Sätze verteilt sind.

Embeddings und Vektordatenbank

Jeder Text-Chunk wird in einen Vektor umgewandelt. Embeddings fassen die Bedeutung eines Texts als Zahlen zusammen. Ähnliche Bedeutungen liegen in diesem Raum nah beieinander. Mit einer Vektordatenbank findest Du schnell die relevanten Textstellen.

from chromadb import Client

client = Client()
collection = client.get_or_create_collection(name='pdf_daten')

collection.add(
    documents=[chunk1, chunk2],
    ids=['1', '2'],
    metadatas=[{'quelle': 'vertrag.pdf'}]
)

Die Abfrage funktioniert ähnlich. Du übergibst die Frage als Embedding und erhältst die passenden Chunks.

Frage beantworten

Die KI wird immer eine Antwort auf Deine Anfragen haben, weil sie so trainiert wurde, dass sie immer eine Antwort gibt.

Die eigentliche Antwort holst Du aus dem Sprachmodell. Du fügst die Frage und die gefundenen Textstellen zu einem Prompt zusammen:

Hier sind Auszüge aus Dokumenten:
{chunks}

Beantworte diese Frage nur anhand der Auszüge:
{frage}

So antwortet das Modell nur mit Inhalten aus Deinen PDFs und halluziniert weniger. Du kannst zusätzlich verlangen, dass Quellenangaben mitgeliefert werden.

Tools mit grafischer Oberfläche

Wer nicht selbst programmieren möchte, greift auf folgende Tools zurück:

  • Open WebUI bietet eine komfortable Chat-Oberfläche mit RAG-Funktion.
  • AnythingLLM ist speziell für Unternehmensdokumente ausgelegt und einfach zu konfigurieren. Eine Schritt-für-Schritt-Anleitung für Docker Compose findest Du in unserem Artikel AnythingLLM mit Ollama per Docker Compose.
  • Flowise eignet sich für komplexere Workflows und visuelle Pipelines.

Alle lassen sich mit Ollama verbinden. Für den Einstieg reicht oft ein fertiges Tool, um schnell zu sehen, ob RAG für Deine Dokumente passt.

Lieber fertige RAG-Systeme nutzen als eigene?

Zuletzt habe ich für eine große Kanzlei die “lokale KI” aufgesetzt und nach der ersten Planung musste ein komplettes RAG-System her. Ich habe die Vectordb/Vektor-Datenbank aufgesetzt, alle Texte gesäubert und in Chunks umgesetzt. Aber jeder muss sich im Klaren sein, was das eigentliche Ziel ist. Die Kanzlei brauchte schnelle Ergebniss. AnythingLLM war der erste Schritt um ein Prototyp zu zeigen und schnell unterschiedliche KI-Modelle zu testen.

Flowise selbst, habe ich noch nicht getestet, aber es steht nun auf meienr ToDo Liste.

Mittlerweile habe ich in der Kanzlei per API Zugängen zu Anbietern wie Langdock und Co geschriegen, in Python. Aber auch eigene RAG-Systeme mit Datenbanken für interne How-To- Software-Systeme.

Mein Tipp, nutze auch am Anfang sofort Systeme wie AnythingLLM und Du kannst via DOCKER innerhalb von 20 Minuten KI-Modelle testen und produktiv nutzen. A B E R : Schreibe Dir mit Python ein kleines API Script und ein eigenen kleinen KI Chat oder ein RAG, damit Du den Aufbau verstehst.

Auf IRC-Coding.de lernst Du wie es geht. Speicher Dir die Seite ab.

PDF-Chatbot mit lokaler KI

Ein PDF-Chatbot mit lokaler KI wandelt Dokumente in Text um, teilt sie in Chunks, speichert Embeddings in einer Vektordatenbank und beantwortet Fragen über ein Sprachmodell. Mit Python kannst Du das selbst aufbauen, mit Tools wie AnythingLLM oder Open WebUI geht es deutlich schneller. In beiden Fällen bleiben Deine PDFs auf Deinem eigenen System.

Teste es aus, Du findest im Artikel AnythingLLM mit Ollama per Docker Compose eine Anleitung, wie Du AnythingLLM mit wenigen Zeilen dank Docker installieren kannst. Am Ende wird der Datenschutz siegen, Firmen, Unternehmen, Schulen, Behörden weden in einigen Bereichen immer lokale Lösungen fokussieren. Bei Behörden geht es derzeit eher zu großen Anbietern, mit “AVV erträgen”.

Zurück zum KI Blog
Share:

Ähnliche Beiträge