Document Pipeline

Automatischer Import und Verarbeitung von Dokumenten aus Nextcloud.

QuelleNextcloud /Documents (lokal)
FormatePDF, PPTX, DOCX, MD, TXT
TriggerPolling + Event-basiert
SprachePython 3.13

Pipeline-Schritte

1. DETECT    → Neue/geänderte Dateien erkennen
2. EXTRACT   → Text extrahieren (OCR, Vision)
3. CHUNK     → Semantisches Chunking
4. ENRICH    → Metadaten anreichern
5. STORE     → In MariaDB speichern
6. EMBED     → Vektoren erzeugen
7. INDEX     → In Qdrant speichern
8. ANALYZE   → Semantische Analyse

Text-Extraktion

FormatToolFeatures
PDFPyMuPDFOCR via Tesseract
PPTXpython-pptxSlides + Speaker Notes
DOCXpython-docxText-Extraktion
MD/TXTdirektUTF-8

Bild-Handling

Bilder in Dokumenten werden via Vision-API beschrieben und als Text-Chunk gespeichert.

Chunking

MethodeSemantisch + Hierarchisch
GrößeIntelligent (kontextabhängig)
Overlap~10%
HierarchieDokument → Kapitel → Abschnitt

Chunk-Metadaten

{
  "document_id": 123,
  "chunk_index": 0,
  "heading_path": ["Kapitel 1", "Abschnitt 1.2"],
  "source_folder": "/Documents/Therapie",
  "entities": ["Carl Rogers"],
  "taxonomy_terms": ["Methoden"]
}

Queue-System

TechnologieMariaDB Table (pipeline_queue)
RetryMax 3 Versuche, exponential backoff
LoggingMariaDB Table (pipeline_log)

Pipeline-Scripts

/opt/scripts/pipeline/
├── pipeline.py          → Haupt-Orchestrierung
├── detect.py            → Datei-Monitoring
├── extract.py           → Text-Extraktion
├── chunk.py             → Semantisches Chunking
├── embed.py             → Embedding-Erzeugung
├── analyze.py           → Semantische Analyse
├── generate_semantics.py → Semantik-Generierung (Entities, Relations)
├── db.py                → Datenbank-Operationen
├── config.py            → Konfiguration
├── run.sh               → Ausführungs-Wrapper
│
├── generate.py          → Content-Generierung (RAG + Kritiker)
├── web_generate.py      → Web-API für Content-Generierung
├── chat.py              → RAG-Chat (interaktiv + CLI)
├── web_chat.py          → Web-API für RAG-Chat
│
└── venv/                → Python Virtual Environment

Script-Kategorien

KategorieScriptsDocs
Import-Pipelinedetect, extract, chunk, embed, analyzeEmbedding
Semantikgenerate_semantics.pyEntitäten
Content-Generierunggenerate.py, web_generate.pyContent-Studio
RAG-Chatchat.py, web_chat.pyRAG-Chat
Infrastrukturdb.py, config.py, run.shDatenbank

Ausführung

cd /opt/scripts/pipeline

# Neue Dokumente scannen
./run.sh scan

# Queue verarbeiten
./run.sh process

# Pending Embeddings
./run.sh embed

# Volle Pipeline
./run.sh all

# Einzelne Datei
./run.sh file /pfad/zur/datei.pdf

# Status anzeigen
./run.sh status