Museum RAG

KI-Projekt von Beat Hutter

Dorfgeschichte aus dem Archiv holen

Alte Chroniken, Jahresschriften und Fotosammlungen stecken voller Geschichten über das eigene Dorf, liegen aber meist ungehoben in Schachteln und PDF-Files. Dieses Projekt macht das Wissen eines Ortsmuseums für die Bevölkerung einfach durchsuchbar. Wer nach einem alten Hof, einer Strasse oder einem historischen Gewerbe fragt, bekommt verlässliche Auskunft direkt aus den Originalquellen und sieht die passenden Bilder dazu.

Illustration: Ein bärtiger Archivar arbeitet an einem Holztisch in einem hellen historischen Museumsarchiv mit grünen Fensterläden. Vor ihm liegen eine alte Chronik, historische Fotografien und ein Laptop, über dem vernetzte Dokumentenkarten und Vektorknoten in Rot, Grün und Goldgelb schweben.
Hybrides RetrievalDense Vektoren + BM25 mit RRF
Zwei SuchpfadeWissensauskunft und Bildergalerie
Deterministische ZitateSeitengenaue Belege aus Code
Fehlertolerantes Register8'331 Entitäten im Speicher

Das Projekt

Anhand des realen Bestands eines historischen Ortsmuseums wird erprobt, wie unstrukturierte Altbestände verlässlich und kontrolliert für den Dialog erschlossen werden.

Realer Archivbestand

Die Wissensbasis umfasst 2'543 seitenübergreifende Textabschnitte aus 24 historischen Publikationen sowie 1'786 inventarisierte Fotoeinträge mit über 8'300 erfassten Personen, Gebäuden und Orten.

Kontrollierte Antwortkette

Ein vorgelagerter Planer löst Rückbezüge im Gespräch auf, ein Reranker bewertet die Relevanz der Textstellen und eine feste Schwelle blockiert unbelegte Antworten vor der Textgenerierung.

Gemessen und weiterentwickelt

Jede Änderung an Indexierung, Suchfiltern und Prompts wird gegen ein festes Testset aus 70 Prüf- und Gegenfragen gemessen und entlang echter Suchanfragen ausgebaut.

Hinweis zum Projektstatus: Wir arbeiten derzeit an einem produktiven Prototypen. Der Chat läuft live auf eigener Infrastruktur über Web-Oberfläche und Telegram, ist aus Gründen des Urheberrechts und des Datenschutzes aktuell aber noch nicht für die breite Öffentlichkeit zugänglich.

Architektur des RAG-Systems

Anfragen durchlaufen eine mehrstufige Pipeline aus Planung, Namensabgleich, hybrider Suche und Relevanzprüfung. Quellenzeilen werden deterministisch aus dem Katalog erzeugt.

KanäleZugriff für Nutzer
Web-Chat (Streamlit)Telegram BotTraefik Reverse Proxy (TLS)
▼
SchutzschichtAPI & Governance
Interne Docker-NetztrennungSliding-Window Rate-LimiterWebhook Secret-TokenKein offener Datenbank-Port
▼
Planung & RegisterVerstehen & Normieren
Single-Call Query-PlanerPronomenauflösungIn-Memory NamensregisterTippfehler-Korrektur (RapidFuzz)
▼
Retrieval & GateFinden & Filtern
Qdrant Hybrid Search (RRF)Wortgenaue RegistersucheLLM-RerankerRelevanz-Gate gegen HalluzinationLokaler Cross-Encoder
▼
Synthese & ZitateAntwort & Belege
Antwort-Synthese mit BelegmarkernLückenbenennung bei TeilwissenDeterministische QuellenzeileParalleler Foto-Hinweis
▼
Speicher & ModelleIndex & Betrieb
Qdrant Vektor-DBArchiv-Katalog (YAML)Foto-Server (Nginx)OpenAI gpt-4o-miniFastEmbed BM25 (lokal)Automatisierte OCR-Pipeline
in BetriebgeplantGovernance & Schutz

Was das System heute leistet

Die Anwendung verbindet historische Textrecherche und gezielte Bildersuche unter einer gemeinsamen Oberfläche im Web und auf Telegram.

Aufbereitung

Seitenübergreifendes Contextual Chunking

Silbentrennungen werden bereinigt, Absätze über Seitengrenzen verbunden und jeder Abschnitt vor der Vektorisierung mit Werk-, Kapitel- und Sprecherkontext versehen.

Präzision

Zweigleisige Textsuche

Anfragen nach Personen, Gebäuden oder Hausnummern nutzen wortgenaue Registerfilter, während offene Sachthemen über die hybride Vektor- und Stichwortsuche laufen.

Medien

Rollenscharfe Foto-Galerie

Die Bildersuche trennt zwischen abgebildeten Motiven und der fotografierenden Person, unterstützt Jahresfilter und liefert Ergebnisse ohne Sprachmodell-Aufruf.

Dialog

Kontext über mehrere Gesprächsrunden

Der Planer löst Pronomen in Folgefragen wie «Wann wurde es erbaut?» oder «Gibt es dazu Fotos?» anhand des Verlaufs in eigenständige Suchabfragen auf.

Verlässlichkeit

Ehrliche Lückenbenennung

Liegen zu einer mehrteiligen Frage nur Teilinformationen vor, beantwortet das System den belegten Teil und benennt ausdrücklich, wozu im Bestand Angaben fehlen.

Betrieb

Anonymes Qualitäts-Monitoring

Ein lokales Protokoll speichert Antwortzeiten, Trefferzahlen und Bewertungen ohne Personendaten, um unbeantwortete Fragen und Bestandslücken sichtbar zu machen.

Governance und Grundsätze

Für den verlässlichen Umgang mit historischen Quellen und Vereinsdaten gelten in der Architektur feste Regeln:

  1. Keine Aussage ohne Beleg im Bestand

    Unterschreiten die gefundenen Textstellen nach dem Reranking die Relevanzschwelle, bricht das System vor dem Sprachmodell-Aufruf ab und meldet transparent, dass keine Angaben vorliegen.

  2. Code baut die Quellenangabe

    Das Sprachmodell setzt im Text nur interne Verweismarker. Die sichtbare Quellenzeile mit Buchtitel, Heftnummer und Seitenzahl erzeugt der Programmcode deterministisch aus dem Katalog.

  3. Rechte am Inhalt wahren

    Originaltexte, historische Fotografien und Bestandsdaten bleiben unter der Hoheit des Museums und sind strikt vom öffentlichen Quellcode-Repository getrennt.

  4. Datenschutz im Bild- und Textbestand

    Nutzungsprotokolle erfassen keine IP-Adressen oder Klarnamen. Für die geplante Öffnung des Fotoarchivs werden Aufnahmen mit zeitgenössischen Personen vorab geprüft und datenschutzkonform bereinigt.

  5. Abgesicherte Schnittstellen

    Die interne Programmierschnittstelle und die Vektordatenbank sind von aussen nicht erreichbar. Öffentlich zugänglich sind nur die Web-Oberfläche und der kryptografisch geprüfte Telegram-Webhook.

  6. Messen vor dem Ändern

    Jede Anpassung an Chunking, Suchgewichtung oder Prompts durchläuft vor der Freigabe die automatisierte Evaluation über alle vier Testsuiten.

Roadmap

Was heute auf dem Server läuft, woran aktuell gearbeitet wird und welche Erweiterungen folgen.

In Betrieb

heute (Prototyp)
  • Hybride Suche auf Qdrant (2'543 Textabschnitte, 1'786 Fotoeinträge)
  • Query-Planer mit Pronomenauflösung und Namensregister (8'331 Entitäten)
  • LLM-Reranker und kalibriertes Relevanz-Gate
  • Deterministische Zitate für Web-Chat und Telegram
  • API-Schutz mit Rate-Limiting und anonymem Logging

Als Nächstes

laufender Ausbau
  • Datenschutz-Massnahmen: Abklärungen zum Bildbestand und Unkenntlichmachung aktueller Personen auf Fotos
  • Feintuning der Vektorsuche: Optimierung der Gewichtung bei komplexen Sachthemen
  • Portfolio-Freigabe: Schrittweise Publikation geprüfter Architektur- und Code-Module

Danach

Erweiterung
  • Automatisierung der OCR-Pipeline für neu gescannte Schriften und historische Protokolle
  • Inkrementelles Register-Update beim Einspielen neuer Archivbestände
  • Auswertungs-Ansicht für Archivverantwortliche zur Analyse von Suchlücken

Forschung

offene Fragen
  • Lokaler Cross-Encoder für schnelleres Reranking ohne externen API-Aufruf
  • Multimodale Bildsuche über visuelle Embeddings für unbeschriftete Fotos
  • Audio-Erschliessung für gesprochene Mundart-Zeitzeugenberichte

Technik

Betrieb auf eigenem virtuellem Server in Europa mit interner Container-Netzwerktrennung und ohne offene Datenbank-Ports. Nur die Aufrufe für das Sprachmodell und die dichten Vektoren laufen über die API von OpenAI.

Orchestrierung
Eigener Python-Service (FastAPI, AsyncIO, Pydantic Structured Outputs) ohne externe Agenten-Frameworks
Sprachmodell
OpenAI gpt-4o-mini für Anfrageplanung, Reranking und quellenbasierte Antwortgenerierung
Embeddings
OpenAI text-embedding-3-small (1536D Dense) und FastEmbed Qdrant/bm25 (lokale deutsche Sparse-Vektoren)
Namensregister
In-Memory-Lookup mit RapidFuzz (WRatio) und regelbasierter Normalisierung für Personen, Gebäude und Adressen
Kanäle
Streamlit (Web-Oberfläche) und Telegram Bot API über abgesicherten HTTPS-Webhook
Vektordatenbank
Qdrant (v1.16.1, selbst betrieben in Docker, Hybrid-Abfrage über Reciprocal Rank Fusion)
Katalog und Protokoll
Geprüfter YAML-Schriftenkatalog und lokales SQLite im WAL-Modus für anonymisierte Betriebsmetriken
Plattform und Netz
Linux-VPS (Ubuntu 24.04), Docker Compose, Traefik Reverse Proxy (Let's Encrypt), Nginx für Mediendateien
Qualität und Release
Eigenes Evaluations-Framework (70 Testfälle in 4 Suiten) und mehrstufige Release-Prüfung mit Gitleaks