mindnet/app/config.py

47 lines
1.9 KiB
Python
Raw Permalink Normal View History

2025-09-02 17:04:00 +02:00
"""
2025-12-15 15:40:39 +01:00
FILE: app/config.py
DESCRIPTION: Zentrale Pydantic-Konfiguration (Env-Vars für Qdrant, LLM, Retriever).
VERSION: 0.4.0
STATUS: Active
DEPENDENCIES: os, functools, pathlib
LAST_ANALYSIS: 2025-12-15
2025-09-02 17:04:00 +02:00
"""
2025-09-02 10:19:42 +02:00
from __future__ import annotations
import os
from functools import lru_cache
2025-12-08 10:32:57 +01:00
from pathlib import Path
2025-09-02 10:19:42 +02:00
class Settings:
# Qdrant
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")
VECTOR_SIZE: int = int(os.getenv("MINDNET_VECTOR_SIZE", "384"))
DISTANCE: str = os.getenv("MINDNET_DISTANCE", "Cosine")
2025-12-08 10:32:57 +01:00
2025-09-02 10:19:42 +02:00
# Embeddings
MODEL_NAME: str = os.getenv("MINDNET_MODEL", "sentence-transformers/all-MiniLM-L6-v2")
2025-12-08 10:32:57 +01:00
# WP-05 LLM / Ollama
OLLAMA_URL: str = os.getenv("MINDNET_OLLAMA_URL", "http://127.0.0.1:11434")
2025-12-08 10:52:57 +01:00
LLM_MODEL: str = os.getenv("MINDNET_LLM_MODEL", "phi3:mini")
2025-12-08 10:32:57 +01:00
PROMPTS_PATH: str = os.getenv("MINDNET_PROMPTS_PATH", "config/prompts.yaml")
2025-12-09 13:14:24 +01:00
# NEU für WP-06
LLM_TIMEOUT: float = float(os.getenv("MINDNET_LLM_TIMEOUT", "120.0"))
2025-12-08 19:36:12 +01:00
DECISION_CONFIG_PATH: str = os.getenv("MINDNET_DECISION_CONFIG", "config/decision_engine.yaml")
2025-09-02 10:19:42 +02:00
# API
DEBUG: bool = os.getenv("DEBUG", "false").lower() == "true"
2025-12-08 10:32:57 +01:00
# WP-04 Retriever Defaults
2025-10-07 10:50:36 +02:00
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"))
RETRIEVER_TOP_K: int = int(os.getenv("MINDNET_WP04_TOP_K", "10"))
RETRIEVER_EXPAND_DEPTH: int = int(os.getenv("MINDNET_WP04_EXPAND_DEPTH", "1"))
RETRIEVER_EDGE_TYPES: str = os.getenv("MINDNET_WP04_EDGE_TYPES", "references,belongs_to,prev,next")
2025-09-02 10:19:42 +02:00
@lru_cache
def get_settings() -> Settings:
2025-12-08 10:32:57 +01:00
return Settings()