Skip to content

conciso/lightrag-document-converter

Repository files navigation

LightRAG Document Converter

Konvertiert verschiedene Dokumentenformate zu Plaintext für LightRAG.

Unterstützte Formate

Kategorie Formate
Office DOCX, XLSX, PPTX, DOC, XLS, ODT, RTF
PDF PDF (direkt + OCR-Fallback)
Web / Markup HTML, HTM, MD, MDX
E-Mail MSG (Outlook), EML
E-Book EPUB
Text / Code TXT, JSON, XML, YAML, CSV, LOG, PY, JS, JAVA, C, CPP, GO, RB, PHP, CSS, TS, SWIFT, …
Bilder JPG, PNG, GIF, BMP, TIFF, WEBP (via OCR)

🐳 Docker (empfohlen)

Schnellstart

# Image bauen
docker compose build

# Konvertierung starten (nutzt ./input und ./output aus dem Projektverzeichnis)
docker compose up

Eigene Input/Output-Verzeichnisse

Option 1 – Umgebungsvariablen (empfohlen für Docker):

docker run --rm \
  -v /pfad/zu/meinen/dokumenten:/data/in \
  -v /pfad/zu/ausgabe:/data/out \
  -e INPUT_DIR=/data/in \
  -e OUTPUT_DIR=/data/out \
  lightrag-document-converter

Option 2 – docker-compose.yml anpassen:

volumes:
  - /pfad/zu/meinen/dokumenten:/app/input
  - /pfad/zu/ausgabe:/app/output

Option 3 – CLI-Flags:

docker run --rm \
  -v /pfad/zu/meinen/dokumenten:/data/in \
  -v /pfad/zu/ausgabe:/data/out \
  lightrag-document-converter \
  --input /data/in --output /data/out

Unterstützte Umgebungsvariablen

Variable Standard Beschreibung
INPUT_DIR /app/input Quellordner mit Dokumenten
OUTPUT_DIR /app/output Zielordner für .txt-Dateien
CHAR_MAPPING_FILE /app/char_mapping.json Pfad zur Zeichen-Mapping-Datei

⚙️ Zeichenersetzung (char_mapping.json)

Nach der Konvertierung wendet der Converter automatisch Ersetzungsregeln aus char_mapping.json an. So lassen sich problematische Sonderzeichen, Steuerzeichen oder typografische Zeichen normalisieren, bevor die Texte in LightRAG landen.

Aufbau der Datei

{
  "replacements": {
    "\u00ad": "",        
    "\u2013": "-",       
    "\u00a0": " ",       
    "\u2026": "...",     
    "\u201c": "\"",      
    "\u201d": "\""       
  },
  "remove_patterns": [
    "\\x00-\\x08",
    "\\x0e-\\x1f"
  ],
  "normalize_whitespace": true,
  "max_consecutive_newlines": 3
}

Felder

Feld Typ Beschreibung
replacements Object Zeichen-zu-Zeichen-Mapping. Leerer String "" = Zeichen entfernen
remove_patterns Array Regex-Zeichenbereiche, die komplett entfernt werden (z. B. Steuerzeichen)
normalize_whitespace bool Mehrfache Leerzeichen auf einem auf einer Zeile zusammenfassen
max_consecutive_newlines int Maximale aufeinanderfolgende Leerzeilen (0 = deaktiviert)

Zeichenersetzung deaktivieren

In config.yaml:

char_mapping_file: ""   # leer lassen = komplett deaktiviert

Oder per Umgebungsvariable:

docker run -e CHAR_MAPPING_FILE="" ...

🖥️ Lokale Installation

# Python-Abhängigkeiten
pip3 install -r requirements.txt

# macOS – System-Tools
brew install tesseract tesseract-lang poppler pandoc
brew install --cask libreoffice

# Linux – System-Tools
sudo apt-get install -y tesseract-ocr tesseract-ocr-eng poppler-utils pandoc libreoffice

Konfiguration

Alle Einstellungen werden in config.yaml vorgenommen:

input_dir: "./input"
output_dir: "./output"
char_mapping_file: "char_mapping.json"
workers: 4

ocr:
  enabled: true
  engine: "auto"           # auto | tesseract | paddleocr
  languages: "deu+eng"

logging:
  level: "INFO"            # DEBUG | INFO | WARNING | ERROR
  file: "conversion.log"

Verwendung (lokal)

# Einfacher Start
python3 main.py

# Pfade überschreiben
python3 main.py --input ./dokumente --output ./texte

# Eigene Mapping-Datei
python3 main.py --char-mapping ./mein_mapping.json

# Weitere Optionen
python3 main.py --workers 8        # Mehr parallele Threads
python3 main.py --no-ocr           # OCR deaktivieren
python3 main.py --verbose          # Debug-Ausgabe
python3 main.py --config other.yaml

Output-Struktur

Der Converter behält die Ordnerstruktur bei:

input/
├── bericht.pdf
└── unterordner/
    └── notizen.docx

output/
├── bericht.txt
└── unterordner/
    └── notizen.txt

About

Multi-Format Document Converter für LightRAG. Konvertiert DOCX, PDF, XLSX, MSG, HTML, EPUB und 30+ weitere Formate zu Plaintext mit OCR-Support.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors