7fe2d853ecc60215c2c93165d77cbdf7beace469
rag-ingestor
Microservice der Dateien aus Nextcloud (Documents/THB/Studium/) in Qdrant indexiert. Embeddings via Ollama.
Endpoints
POST /webhook(HeaderX-Webhook-Secret): Nextcloud-Event-Empfang (created/updated/deleted).POST /bulk-import(HeaderX-Webhook-Secret): Body{"path": "..."}→ rekursiver Re-Index.GET /health: Liveness-Probe.
Erwartete Ordnerstruktur
Documents/THB/Studium/<N>.Semester/<Fach>/[<Unterordner>]/<datei>
Unterstützte Dateitypen: .pdf, .md, .docx, .xlsx (XLSX wird nur als Filename indexiert, kein Inhalt).
Konfiguration
Siehe .env.example. Alle Werte über Env-Vars, kein Config-File.
Lokale Entwicklung
uv sync
uv run pytest
uv run uvicorn app.main:app --reload
Deployment
Image bauen und in Coolify neben Qdrant + Ollama deployen:
docker build -f docker/Dockerfile -t rag-ingestor .
Tests
uv run pytest -v
Tests deckt Pure-Logic ab (Metadata-Parser, Chunker, Extractors, Auth, Pipeline-Orchestrierung mit gemockten externen Services). Keine Integration-Tests gegen echte Ollama/Qdrant/WebDAV-Instanzen.
Description