orc-renaming/config.example.yaml

105 lines
3.2 KiB
YAML

nextcloud:
# Vollständige WebDAV-URL des Benutzers, ohne abschließenden Slash:
# https://cloud.example/remote.php/dav/files/USERNAME
webdav_url: "https://cloud.example/remote.php/dav/files/USERNAME"
username: "USERNAME"
password_env: "NEXTCLOUD_PASSWORD"
input_folder: "/Scanner/Eingang"
output_folder: "/Scanner/Eingang/umbenannt"
review_folder: "/Scanner/Eingang/manuell-pruefen"
archive_folder: "/Scanner/Eingang/verarbeitet-originale"
archive_originals: true
verify_tls: true
# Verhindert standardmäßig, dass interne Dokumentdaten über Umgebungs-Proxys laufen.
trust_env: false
timeout_seconds: 60
ollama:
enabled: true
base_url: "http://ollama.intern:11434"
# Schnelles Primärmodell; das größere Modell wird nur bei Unsicherheit verwendet.
model: "qwen3.5:4B"
fallback_model: "qwen3.5:9b"
think: false
keep_alive: "10m"
context_tokens: 8192
max_output_tokens: 700
# Erste PDF-Seite wird nur dann gerendert, wenn die Regeln nicht ausreichen.
vision_enabled: true
vision_dpi: 144
vision_image_format: "jpeg"
vision_jpeg_quality: 80
timeout_seconds: 180
trust_env: false
# Der Text bleibt lokal. Es wird keine Cloud-API verwendet.
max_text_characters: 16000
processing:
# Erst nach erfolgreichem Test auf false setzen.
dry_run: true
confidence_threshold: 0.85
max_pdf_pages: 30
state_directory: "./state"
work_directory: "./work"
excel_filename: "protokoll.xlsx"
# Nur aktivieren, wenn Immobilien mit ihren Markern vollständig gepflegt sind.
assume_unmatched_invoices_private: true
assume_unmatched_correspondence_private: true
unmatched_private_confidence: 0.86
# Einzige beabsichtigte Nextcloud-Schreiboperation im Dry-Run.
upload_excel_in_dry_run: true
filename_max_length: 180
# Kanonischer Firmenname und mögliche Schreibweisen im OCR-Text.
companies:
- name: "Stadtwerke-Musterstadt"
aliases:
- "Stadtwerke Musterstadt GmbH"
- "Stadtwerke Musterstadt"
default_scope: "unknown"
default_property_id: null
require_property_match: false
- name: "Hausverwaltung-Muster"
aliases:
- "Hausverwaltung Muster GmbH"
default_scope: "property"
default_property_id: null
require_property_match: true
- name: "Private-Krankenversicherung"
aliases:
- "Beispiel Krankenversicherung AG"
default_scope: "private"
default_property_id: null
require_property_match: false
# Je mehr eindeutige Merkmale gepflegt sind, desto weniger KI ist nötig.
properties:
- id: "WH1"
name: "Wohnhaus Musterstraße"
markers:
- "Musterstraße 12"
- "47110815"
- "DE000123456"
# Wiederkehrende Themen umgehen das LLM, wenn Datum und Firma ebenfalls erkannt werden.
topics:
- name: "Eigentuemerversammlung"
markers:
- "Eigentümerversammlung"
- "Einladung zur Eigentümerversammlung"
- name: "Versicherungsvertrag"
markers:
- "Versicherungsschein"
- "Beitragsanpassung"
# Die normale Empfängeradresse ist nur eine Voraussetzung für den Privat-Fallback.
recipient_markers:
- "Eigene Privatstraße 1"
# Ausschließlich private Kennzeichen; hier NICHT die normale Empfängeradresse eintragen.
private_markers:
- "Private Kundennummer 123456"
- "Private Versicherungsnummer ABC123"