Files
planer2/backend/config.py
2026-07-29 15:19:41 +02:00

47 lines
1.6 KiB
Python

import os
from pathlib import Path
PROJECT_ROOT = Path(__file__).resolve().parent.parent
DATEN_DIR = PROJECT_ROOT / "daten"
# Ein Abschnitt je Datei; alphabetisch gelesen, „allgemein" landet dadurch vorn.
# Neue Datei anlegen genügt — der Katalog nimmt sie ohne Codeänderung auf.
STIL_DIR = Path(__file__).resolve().parent / "stil"
def _lade_env():
"""Liest .env im Projektwurzel-Verzeichnis; echte Umgebungsvariablen haben Vorrang."""
datei = PROJECT_ROOT / ".env"
if not datei.is_file():
return
for zeile in datei.read_text().splitlines():
zeile = zeile.strip()
if not zeile or zeile.startswith("#") or "=" not in zeile:
continue
schluessel, wert = zeile.split("=", 1)
os.environ.setdefault(schluessel.strip(), wert.strip())
_lade_env()
MINIMAX_API_KEY = os.environ.get("MINIMAX_API_KEY", "")
MINIMAX_MODELL = os.environ.get("MINIMAX_MODELL", "")
MINIMAX_URL = os.environ.get("MINIMAX_URL", "")
# Das Gespräch darf woanders laufen als die Prüfungen. Es ist ein einzelner Aufruf
# und lebt von Sprachgefühl; die Prüfungen sind hundert Stimmen und leben von der
# Temperaturstreuung. Nicht gesetzt heißt: alles über MiniMax.
CHAT_API_KEY = os.environ.get("CHAT_API_KEY", "")
CHAT_MODELL = os.environ.get("CHAT_MODELL", "")
CHAT_URL = os.environ.get("CHAT_URL", "https://api.anthropic.com/v1/messages")
def _zahl(name: str, standard: int) -> int:
try:
wert = int(os.environ.get(name, standard))
except ValueError:
return standard
return max(1, wert)
PRUEFUNG_PARALLEL = _zahl("PRUEFUNG_PARALLEL", 10)