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

47 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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