rag-ingestor

Microservice der Dateien aus Nextcloud (Documents/THB/Studium/) in Qdrant indexiert. Embeddings via Ollama.

Endpoints

  • POST /webhook (Header X-Webhook-Secret): Nextcloud-Event-Empfang (created / updated / deleted).
  • POST /bulk-import (Header X-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
Nextcloud → Qdrant RAG ingestion service
Readme 241 KiB
v0.2.0 Latest
2026-05-18 20:15:57 +00:00
Languages
Python 99.2%
Dockerfile 0.8%