RAG-System selbst bauen: Schritt-für-Schritt mit Open Source
Ein RAG-System verbindet deine Dokumente mit einem Sprachmodell: Fragen in natürlicher Sprache, Antworten mit Quellenangabe. Der komplette Aufbau-Plan mit Komponenten, Architektur und Betriebskosten.
Inhaltsverzeichnis
Was ist RAG?
Retrieval-Augmented Generation kombiniert zwei Dinge: eine Dokumentsuche und ein Sprachmodell. Wenn du eine Frage stellst, sucht das System zuerst passende Dokumentabschnitte aus deiner Datenbank, packt sie in den Prompt und lässt das LLM auf dieser Basis antworten.
Das Schöne: das LLM muss nicht mit deinen Daten trainiert werden. Du fügst einfach neue Dokumente hinzu, und sie sind sofort durchsuchbar. Ideal für interne Wissensdatenbanken, Produktdokumentationen, Kanzlei-Archive oder strukturierte Support-Historien.
Gegenüber Fine-Tuning hat RAG drei klare Vorteile: deutlich günstiger, Daten jederzeit aktualisierbar oder löschbar, und Quellen transparent zitierbar.
Die Bausteine eines RAG-Systems
- Parser — wandelt PDFs, Word, HTML in sauberes Markdown (siehe Docling)
- Chunker — zerlegt Dokumente in Abschnitte, typisch 500–1.000 Zeichen mit 10–20 % Überlappung
- Embedding-Modell — wandelt Text in Zahlenvektoren (BGE-M3, Nomic Embed, E5-Large-Multilingual)
- Vektor-Datenbank — speichert die Vektoren (siehe Vergleich)
- Retriever — findet die relevantesten Chunks, Top-k meist 20–100
- Reranker — sortiert auf die 3–5 wirklich passenden Treffer
- LLM — erzeugt aus Frage + Kontext die Antwort
Oben drauf kommt ein Frontend — typischerweise OpenWebUI, das eine ChatGPT-ähnliche Oberfläche mit integrierter RAG-Logik liefert.
Die Architektur im Überblick
flowchart LR
subgraph Ingest["Ingestion"]
A["PDFs"] --> B["Docling"]
B --> C["Markdown"]
C --> D["Chunker"]
D --> E["Embedding"]
E --> F[("pgvector")]
end
subgraph Query["Query"]
U["Frage"] --> OWU["OpenWebUI"]
OWU --> EQ["Embedding"]
EQ --> F
F --> RR["Reranker"]
RR --> LLM["LLM"]
OWU --> LLM
LLM --> ANS["Antwort + Quellen"]
end
Aufbau in fünf Schritten
1. Datenbank mit pgvector
PostgreSQL mit pgvector-Extension als Docker-Container. 5 Minuten Setup, danach SQL + Vektorsuche kombinierbar. Der Charme: Metadaten-Joins funktionieren nativ — Filterung nach User, Rolle oder Projekt ohne zweite Datenbank.
2. Docling für Parsing
Docling als Docker-Container mit REST-API. n8n oder ein kleines Python-Skript überwacht einen Eingabeordner, schickt neue PDFs an Docling und schreibt das Markdown in die nächste Stufe.
3. Embedding-Pipeline
Ollama lädt das Embedding-Modell (z. B. nomic-embed-text oder bge-m3). Ein Skript chunkt das Markdown, embeddet jeden Chunk und schreibt Vektor + Text + Metadaten nach pgvector.
4. LLM bereitstellen
Ollama stellt parallel das Generator-Modell bereit. Für Deutsch zuverlässig: Llama 3.3 70B (braucht GPU), als CPU-Alternative Qwen 2.5 14B. Beide per OpenAI-kompatibler API ansprechbar.
5. OpenWebUI als Frontend
OpenWebUI konfigurieren: LLM auf Ollama, Embeddings auf Ollama, Vektorstore auf pgvector. Workspaces pro Team, Dokumenten-Upload per Drag-and-Drop. User erleben eine ChatGPT-ähnliche Oberfläche — Daten bleiben im Haus.
Typische Fallstricke
- Zu große Chunks — ganze Seiten pro Chunk verwässern das Signal. Präzise kurze Chunks bringen bessere Retrieval-Qualität.
- Englisches Embedding-Modell für deutsche Texte — drastischer Qualitätsverlust. Immer multilinguale Modelle wählen.
- Top-k zu hoch — 50 Chunks im Prompt erzeugen Noise. Top-5 nach Reranking ist die richtige Größenordnung.
- Kein Reranking — größter Qualitätsverlust entsteht hier. Details unten.
- Fehlende Quellenangaben — ohne Zitate ist die Antwort nicht prüfbar. OpenWebUI liefert sie per Default.
Warum Reranking den Unterschied macht
Embedding-Modelle erzeugen für jeden Text einen einzigen Vektor. Die Ähnlichkeitssuche ist schnell, aber grob: thematisch verwandte Stellen, nicht die zur Frage passendsten.
Ein Reranker ist ein Cross-Encoder: Er bekommt Frage und Dokument als Paar und bewertet die Relevanz präziser. Zweistufig arbeiten: Top-100 schnell per Embedding, Top-5 präzise per Reranker.
Empfehlungen: BGE-Reranker-v2-m3 (Open Source, CPU-fähig), ColBERT v2 (höchste Qualität), Cohere Rerank (SaaS, DSGVO prüfen).
Kosten und Aufwand
Rechenbeispiel für einen Mittelstandsbetrieb mit 10–50 Nutzern:
- Hardware — VPS mit 8 vCPU/32 GB RAM ca. 35 €/Monat für Embedding + Retrieval. Für LLM zusätzlich GPU-Instanz oder lokaler Rechner.
- Software — 0 €. Alles Open Source.
- Setup — ein erfahrener Entwickler braucht eine Woche bis produktiv.
- Wartung — ca. 2 h pro Monat für Updates und Reindexierung.
Kommerzielle RAG-SaaS starten bei ca. 30 €/User/Monat. Bei 30 Nutzern sind das 900 €/Monat — mehr als die gesamte Self-Hosted-Infrastruktur.
Fazit
RAG ist 2026 Commodity: gute Bausteine, klare Muster, planbare Kosten. Wer interne Dokumente für alle Mitarbeiter nutzbar machen will, kommt kaum daran vorbei.
Der häufigste Fehler ist, gleich auf SaaS zu setzen, weil es schnell gehen muss. Ein solider Self-Hosted-Stack ist in einer Woche einsatzbereit, kostet langfristig einen Bruchteil — und hält die Daten dort, wo sie hingehören.