Nachzügler für Config mit abgleich auf die neue .env

This commit is contained in:
Lars 2025-12-25 08:41:33 +01:00
parent 5c55229376
commit b4a07a05af

View File

@ -4,8 +4,8 @@ DESCRIPTION: Zentrale Pydantic-Konfiguration. Enthält Parameter für Qdrant,
Embeddings, Ollama, Google GenAI und OpenRouter. Embeddings, Ollama, Google GenAI und OpenRouter.
WP-20: Optimiert für Hybrid-Cloud Modus und Vektor-Synchronisation. WP-20: Optimiert für Hybrid-Cloud Modus und Vektor-Synchronisation.
WP-22: Integration von Change-Detection und Vocab-Paths. WP-22: Integration von Change-Detection und Vocab-Paths.
FIX: Hinzufügen von load_dotenv(), um Umgebungsvariablen aus .env aktiv zu laden. FIX: Hinzufügen von load_dotenv() und Bereinigung redundanter Modell-Variablen.
VERSION: 0.6.3 VERSION: 0.6.4
STATUS: Active STATUS: Active
DEPENDENCIES: os, functools, pathlib, python-dotenv DEPENDENCIES: os, functools, pathlib, python-dotenv
""" """
@ -16,7 +16,7 @@ from pathlib import Path
from dotenv import load_dotenv from dotenv import load_dotenv
# WP-20: Lade Umgebungsvariablen aus der .env Datei # WP-20: Lade Umgebungsvariablen aus der .env Datei
# Muss vor dem Zugriff auf os.getenv erfolgen! # Muss zwingend vor dem Zugriff auf os.getenv erfolgen!
load_dotenv() load_dotenv()
class Settings: class Settings:
@ -24,6 +24,7 @@ class Settings:
QDRANT_URL: str = os.getenv("QDRANT_URL", "http://127.0.0.1:6333") QDRANT_URL: str = os.getenv("QDRANT_URL", "http://127.0.0.1:6333")
QDRANT_API_KEY: str | None = os.getenv("QDRANT_API_KEY") QDRANT_API_KEY: str | None = os.getenv("QDRANT_API_KEY")
COLLECTION_PREFIX: str = os.getenv("MINDNET_PREFIX", "mindnet") COLLECTION_PREFIX: str = os.getenv("MINDNET_PREFIX", "mindnet")
# WP-22: Vektor-Dimension muss mit dem Embedding-Modell (nomic) übereinstimmen # WP-22: Vektor-Dimension muss mit dem Embedding-Modell (nomic) übereinstimmen
VECTOR_SIZE: int = int(os.getenv("VECTOR_DIM", "768")) VECTOR_SIZE: int = int(os.getenv("VECTOR_DIM", "768"))
DISTANCE: str = os.getenv("MINDNET_DISTANCE", "Cosine") DISTANCE: str = os.getenv("MINDNET_DISTANCE", "Cosine")
@ -36,14 +37,13 @@ class Settings:
# Erlaubt: "ollama" | "gemini" | "openrouter" # Erlaubt: "ollama" | "gemini" | "openrouter"
MINDNET_LLM_PROVIDER: str = os.getenv("MINDNET_LLM_PROVIDER", "ollama").lower() MINDNET_LLM_PROVIDER: str = os.getenv("MINDNET_LLM_PROVIDER", "ollama").lower()
# Google AI Studio (Direkt) # Google AI Studio (Direkt-Integration)
GOOGLE_API_KEY: str | None = os.getenv("GOOGLE_API_KEY") GOOGLE_API_KEY: str | None = os.getenv("GOOGLE_API_KEY")
GEMINI_MODEL: str = os.getenv("MINDNET_GEMINI_MODEL", "gemini-1.5-flash") GEMINI_MODEL: str = os.getenv("MINDNET_GEMINI_MODEL", "gemini-1.5-flash")
GEMMA_MODEL: str = os.getenv("MINDNET_GEMMA_MODEL", "google/gemma-2-9b-it:free")
# OpenRouter Integration # OpenRouter Integration (Primärlösung für Turbo-Ingest)
OPENROUTER_API_KEY: str | None = os.getenv("OPENROUTER_API_KEY") OPENROUTER_API_KEY: str | None = os.getenv("OPENROUTER_API_KEY")
OPENROUTER_MODEL: str = os.getenv("OPENROUTER_MODEL", "google/gemma-2-9b-it:free") OPENROUTER_MODEL: str = os.getenv("OPENROUTER_MODEL", "openai/gpt-oss-20b:free")
LLM_FALLBACK_ENABLED: bool = os.getenv("MINDNET_LLM_FALLBACK", "true").lower() == "true" LLM_FALLBACK_ENABLED: bool = os.getenv("MINDNET_LLM_FALLBACK", "true").lower() == "true"
@ -62,9 +62,11 @@ class Settings:
MINDNET_VAULT_ROOT: str = os.getenv("MINDNET_VAULT_ROOT", "./vault") MINDNET_VAULT_ROOT: str = os.getenv("MINDNET_VAULT_ROOT", "./vault")
MINDNET_TYPES_FILE: str = os.getenv("MINDNET_TYPES_FILE", "config/types.yaml") MINDNET_TYPES_FILE: str = os.getenv("MINDNET_TYPES_FILE", "config/types.yaml")
MINDNET_VOCAB_PATH: str = os.getenv("MINDNET_VOCAB_PATH", "vault/_system/dictionary/edge_vocabulary.md") MINDNET_VOCAB_PATH: str = os.getenv("MINDNET_VOCAB_PATH", "vault/_system/dictionary/edge_vocabulary.md")
# WP-22: 'full' aktiviert Multi-Hash Change Detection
CHANGE_DETECTION_MODE: str = os.getenv("MINDNET_CHANGE_DETECTION_MODE", "full") CHANGE_DETECTION_MODE: str = os.getenv("MINDNET_CHANGE_DETECTION_MODE", "full")
# --- WP-04 Retriever Gewichte --- # --- WP-04 Retriever Gewichte (Finetuning des Scorings) ---
RETRIEVER_W_SEM: float = float(os.getenv("MINDNET_WP04_W_SEM", "0.70")) RETRIEVER_W_SEM: float = float(os.getenv("MINDNET_WP04_W_SEM", "0.70"))
RETRIEVER_W_EDGE: float = float(os.getenv("MINDNET_WP04_W_EDGE", "0.25")) RETRIEVER_W_EDGE: float = float(os.getenv("MINDNET_WP04_W_EDGE", "0.25"))
RETRIEVER_W_CENT: float = float(os.getenv("MINDNET_WP04_W_CENT", "0.05")) RETRIEVER_W_CENT: float = float(os.getenv("MINDNET_WP04_W_CENT", "0.05"))
@ -74,4 +76,5 @@ class Settings:
@lru_cache @lru_cache
def get_settings() -> Settings: def get_settings() -> Settings:
"""Gibt eine gecachte Instanz der Einstellungen zurück (Singleton-Muster)."""
return Settings() return Settings()