From b4a07a05af4e9982a1045970d8513a48b8a5d620 Mon Sep 17 00:00:00 2001 From: Lars Date: Thu, 25 Dec 2025 08:41:33 +0100 Subject: [PATCH] =?UTF-8?q?Nachz=C3=BCgler=20f=C3=BCr=20Config=20mit=20abg?= =?UTF-8?q?leich=20auf=20die=20neue=20.env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/config.py b/app/config.py index 6e469c9..dc701d8 100644 --- a/app/config.py +++ b/app/config.py @@ -4,8 +4,8 @@ DESCRIPTION: Zentrale Pydantic-Konfiguration. Enthält Parameter für Qdrant, Embeddings, Ollama, Google GenAI und OpenRouter. WP-20: Optimiert für Hybrid-Cloud Modus und Vektor-Synchronisation. WP-22: Integration von Change-Detection und Vocab-Paths. -FIX: Hinzufügen von load_dotenv(), um Umgebungsvariablen aus .env aktiv zu laden. -VERSION: 0.6.3 +FIX: Hinzufügen von load_dotenv() und Bereinigung redundanter Modell-Variablen. +VERSION: 0.6.4 STATUS: Active DEPENDENCIES: os, functools, pathlib, python-dotenv """ @@ -16,7 +16,7 @@ from pathlib import Path from dotenv import load_dotenv # 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() class Settings: @@ -24,6 +24,7 @@ class Settings: QDRANT_URL: str = os.getenv("QDRANT_URL", "http://127.0.0.1:6333") QDRANT_API_KEY: str | None = os.getenv("QDRANT_API_KEY") COLLECTION_PREFIX: str = os.getenv("MINDNET_PREFIX", "mindnet") + # WP-22: Vektor-Dimension muss mit dem Embedding-Modell (nomic) übereinstimmen VECTOR_SIZE: int = int(os.getenv("VECTOR_DIM", "768")) DISTANCE: str = os.getenv("MINDNET_DISTANCE", "Cosine") @@ -36,14 +37,13 @@ class Settings: # Erlaubt: "ollama" | "gemini" | "openrouter" 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") 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_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" @@ -62,9 +62,11 @@ class Settings: MINDNET_VAULT_ROOT: str = os.getenv("MINDNET_VAULT_ROOT", "./vault") 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") + + # WP-22: 'full' aktiviert Multi-Hash Change Detection 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_EDGE: float = float(os.getenv("MINDNET_WP04_W_EDGE", "0.25")) RETRIEVER_W_CENT: float = float(os.getenv("MINDNET_WP04_W_CENT", "0.05")) @@ -74,4 +76,5 @@ class Settings: @lru_cache def get_settings() -> Settings: + """Gibt eine gecachte Instanz der Einstellungen zurück (Singleton-Muster).""" return Settings() \ No newline at end of file