# PDF Umbenenner – Konfigurationsbeispiel fuer lokale Entwicklung
# Kopiere diese Datei nach config/application.properties und passe die Werte an.

# ---------------------------------------------------------------------------
# Pflichtparameter (allgemein)
# ---------------------------------------------------------------------------

# Quellordner: Ordner, aus dem OCR-verarbeitete PDF-Dateien gelesen werden.
# Der Ordner muss vorhanden und lesbar sein.
source.folder=./work/local/source

# Zielordner: Ordner, in den die umbenannten Kopien abgelegt werden.
# Wird automatisch angelegt, wenn er noch nicht existiert.
target.folder=./work/local/target

# SQLite-Datenbankdatei fuer Bearbeitungsstatus und Versuchshistorie.
# Das uebergeordnete Verzeichnis muss vorhanden sein.
sqlite.file=./work/local/pdf-umbenenner.db

# Maximale Anzahl historisierter transienter Fehlversuche pro Dokument.
# Muss eine ganze Zahl >= 1 sein.
max.retries.transient=3

# Maximale Seitenzahl pro Dokument. Dokumente mit mehr Seiten werden als
# deterministischer Inhaltsfehler behandelt (kein KI-Aufruf).
max.pages=10

# Maximale Zeichenanzahl des Dokumenttexts, der an die KI gesendet wird.
max.text.characters=1000

# Maximale Länge des Basistitels in Zeichen (10..120). Default 60.
max.title.length=60

# Pfad zur externen Prompt-Datei. Der Dateiname dient als Prompt-Identifikator
# in der Versuchshistorie.
prompt.template.file=./config/prompts/template.txt

# ---------------------------------------------------------------------------
# Optionale Parameter
# ---------------------------------------------------------------------------

# Pfad zur Lock-Datei fuer den Startschutz (verhindert parallele Instanzen).
runtime.lock.file=./work/local/pdf-umbenenner.lock

# Log-Verzeichnis. Wird weggelassen, schreibt Log4j2 in ./logs/.
log.directory=./work/local/logs

# Log-Level (DEBUG, INFO, WARN, ERROR). Standard ist INFO.
log.level=INFO

# Sensible KI-Inhalte (vollstaendige Rohantwort und Reasoning) ins Log schreiben.
# Erlaubte Werte: true oder false. Standard ist false (geschuetzt).
log.ai.sensitive=false

# ---------------------------------------------------------------------------
# Aktiver KI-Provider
# ---------------------------------------------------------------------------
# Erlaubte Werte: openai-compatible, claude
ai.provider.active=openai-compatible

# ---------------------------------------------------------------------------
# OpenAI-kompatibler Provider
# ---------------------------------------------------------------------------
# Basis-URL des KI-Dienstes (ohne Pfadsuffix wie /chat/completions).
ai.provider.openai-compatible.baseUrl=https://api.openai.com/v1

# Modellname des KI-Dienstes.
ai.provider.openai-compatible.model=gpt-4o-mini

# HTTP-Timeout fuer KI-Anfragen in Sekunden (muss > 0 sein).
ai.provider.openai-compatible.timeoutSeconds=30

# API-Schluessel.
# Vorrangreihenfolge: OPENAI_COMPATIBLE_API_KEY (Umgebungsvariable) >
#                    PDF_UMBENENNER_API_KEY (veraltete Umgebungsvariable, weiterhin akzeptiert) >
#                    ai.provider.openai-compatible.apiKey (dieser Wert)
ai.provider.openai-compatible.apiKey=your-openai-api-key-here

# ---------------------------------------------------------------------------
# Anthropic Claude-Provider (nur benoetigt wenn ai.provider.active=claude)
# ---------------------------------------------------------------------------
# Basis-URL (optional; Standard: https://api.anthropic.com)
# ai.provider.claude.baseUrl=https://api.anthropic.com

# Modellname (z. B. claude-3-5-sonnet-20241022)
# ai.provider.claude.model=claude-3-5-sonnet-20241022

# HTTP-Timeout fuer KI-Anfragen in Sekunden (muss > 0 sein).
# ai.provider.claude.timeoutSeconds=60

# API-Schluessel. Die Umgebungsvariable ANTHROPIC_API_KEY hat Vorrang.
# ai.provider.claude.apiKey=
