Skip to content

Environment

Environment Variablen anlegen

Erstellen einer .env Datei im Wurzelverzeichnis. Eintragen der verwendeten Variablen:

NLTK_DATA=/PATH/TO/REPO/data/nltk/
PYTHONPATH=/PATH/TO/REPO/src


# MLFlow Credentials
MLFLOW_TRACKING_URI=
MLFLOW_S3_ENDPOINT_URL=
MLFLOW_TRACKING_USERNAME=
MLFLOW_TRACKING_PASSWORD=
MLFLOW_S3_BUCKET=

# Minio Credentials
MINIO_ENDPOINT=
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
MINIO_BUCKET=

# Minio Credentials für BOTO
AWS_ENDPOINT_URL=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_S3_ADDRESSING_STYLE=

# S3/MinIO-Bucket, in dem die pickled Pipelines liegen
MODEL_BUCKET=

# Fallback-Modell, falls im Dashboard noch keins aktiv gesetzt wurde
ACTIVE_MODEL_ABBR=

# Bucket für PNG/HTML-Ausgaben
XAI_BUCKET=

# Email Setting
IMAP_HOST=
IMAP_USER=
IMAP_PASS=
IMAP_SECURITY=
IMAP_PORT=
IMAP_SSL=1
IMAP_DELETE_ON_FETCH=0

SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASSWORD=
SMTP_USE_TLS=
SMTP_FROM=

POLL_INTERVAL=60


# Pfade
EMAILS_DB_PATH=/PATH/TO/REPO/srv/emails.db
DB_PATH=/PATH/TO/REPO/srv/emails.db

# Zammad API Endpoints
ZAMMAD_URL=
ZAMMAD_USERNAME=
ZAMMAD_PASSWORD=

(Auf dem Server wäre der Pfad z.B.: NLTK_DATA=/app/data/nltk )

Die Auslagerung unserer Pakete nach 'src' ist ein bisschen tricky. VSCode fügt den Pfad über die PYTHONPATH-Variable jedoch automatisch der Umgebung hinzu. Auf anderen Systemen könnten weitere Einstellungen nötig sein.

In .vscode/settings.json wird außerdem

    "python.analysis.extraPaths": [
        "./src"
    ],
gesetzt, damit auch die Linter bei Überprüfung der Importe den richtigen Weg zu den Paketen finden.

Siehe auch

Weitere Hinweise zur Anwendung von MLFlow.

Konfigurationsdateien

Im Verzeichnis /config liegen Konfigurationsdateien im YAML-Format. Diese sind insbesondere für die übersichtliche Definition von Default-Parametern für das Preprocessing und Training hilfreich. Nach Möglichkeit sollten alle Entscheidungen für Defaults in den hier gelagerten Dateien auftauchen und von hier abgerufen werden. Das vermeidet die Wiederholung und individuelle Abweichung an vielen verschiedenen Orten.

Die YAMLs lassen sich so in ein Dictionary laden, aus dem mittels Keys die Values ausgelesen werden:

from utils.config_loader import load_config

config = load_config("config/<config-name>.yaml)
value = config["key"]

— André Gasch