Files
rag-ingestor/REQUIREMENTS.md
Jean-Luc Makiola 5554f25738 docs: initial requirements und design spec
Initial commit fuer den RAG-Ingestor-Microservice. Enthaelt die
urspruengliche REQUIREMENTS.md und die ausgearbeitete Design-Spec
nach Brainstorming-Session.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 21:29:13 +02:00

1.3 KiB
Raw Permalink Blame History

RAG Ingestor Requirements

Zweck

Microservice der neue/geänderte Dateien aus Nextcloud automatisch in Qdrant einliest.

Trigger

  • Nextcloud Webhook (NodeCreatedEvent / NodeUpdatedEvent)
  • Manueller HTTP-Aufruf für Bulk-Import

Input

Nextcloud Webhook Payload mit:

  • Dateipfad
  • Dateiname
  • Event-Typ (erstellt / geändert / gelöscht)

Verarbeitung

  1. Datei per WebDAV herunterladen
  2. Text extrahieren je nach Typ (PDF, MD, DOCX, XLSX nur Metadaten)
  3. Text in Chunks aufteilen (~500 Wörter, ~50 Wörter Overlap)
  4. Chunks via Ollama embedden (qwen3-embedding:0.6b)
  5. Vektoren + Metadaten in Qdrant speichern

Metadaten je Chunk

  • Dateiname + Pfad
  • Dateityp
  • Semester / Fach (aus Ordnerstruktur ableiten)
  • Seite (bei PDF)
  • Chunk-Index
  • Timestamp

Update-Verhalten

  • Bei geänderter Datei: alte Chunks löschen, neu einlesen
  • Bei gelöschter Datei: alle zugehörigen Chunks aus Qdrant entfernen

Sicherheit

  • Shared Secret im Webhook Header zur Authentifizierung

Netzwerk

  • Läuft im Coolify-internen Netzwerk
  • Kein öffentlicher Endpunkt nötig (Nextcloud im selben Netzwerk)
  • Qdrant und Ollama nur intern erreichbar

Tech Stack

  • Python + FastAPI
  • pymupdf, python-docx für Extraktion
  • qdrant-client, ollama Python Libraries