46 lines
2.7 KiB
Python
46 lines
2.7 KiB
Python
import os
|
|
|
|
class Settings:
|
|
DB_HOST: str = os.getenv("DB_HOST", "postgres")
|
|
DB_PORT: int = int(os.getenv("DB_PORT", "5432"))
|
|
DB_USER: str = os.getenv("DB_USER", "aissa")
|
|
DB_PASSWORD: str = os.getenv("DB_PASSWORD", "Foodlinkk#2026")
|
|
DB_NAME: str = os.getenv("DB_NAME", "foodlinkk")
|
|
OLLAMA_URL: str = os.getenv("OLLAMA_URL", "http://10.4.7.19:11434")
|
|
OLLAMA_MODEL: str = os.getenv("OLLAMA_MODEL", "qwen3:8b")
|
|
TOOLS_API_URL: str = os.getenv("TOOLS_API_URL", "http://tools-api:8700")
|
|
HERMAN_ORCHESTRATOR_URL: str = os.getenv("HERMAN_ORCHESTRATOR_URL", "http://10.4.7.19:8090")
|
|
# OpenRouter (optioneel — key ook via Instellingen → AI / LLM)
|
|
OPENROUTER_API_KEY: str = os.getenv("OPENROUTER_API_KEY", "")
|
|
OPENROUTER_MODEL: str = os.getenv("OPENROUTER_MODEL", "deepseek/deepseek-v4-flash")
|
|
OPENROUTER_BASE_URL: str = os.getenv("OPENROUTER_BASE_URL", "https://openrouter.ai/api/v1")
|
|
# orchestrator | router | auto (auto = orchestrator, fallback naar standaard LLM provider)
|
|
HERMAN_LLM_BACKEND: str = os.getenv("HERMAN_LLM_BACKEND", "auto")
|
|
# Hermes Agent (OpenAI-compatible) — Herman briefing backend
|
|
HERMES_API_BASE: str = os.getenv("HERMES_API_BASE", "http://10.4.7.10:8642/v1")
|
|
HERMES_API_KEY: str = os.getenv("HERMES_API_KEY", "")
|
|
HERMES_API_MODEL: str = os.getenv("HERMES_API_MODEL", "hermes-agent")
|
|
WHISPER_API_URL: str = os.getenv("WHISPER_API_URL", "http://10.4.7.19:8877/v1/audio/transcriptions")
|
|
WHISPER_MODEL: str = os.getenv("WHISPER_MODEL", "Systran/faster-whisper-base")
|
|
WHISPER_LANGUAGE: str = os.getenv("WHISPER_LANGUAGE", "nl")
|
|
HERMES_FEED_URL: str = os.getenv("HERMES_FEED_URL", "http://10.4.7.10:8755")
|
|
# Bind cockpit chat aan Hermes/Telegram memory (chat_id als OpenAI "user")
|
|
HERMES_CEO_CHAT_ID: str = os.getenv("HERMES_CEO_CHAT_ID", "8859782446")
|
|
HERMES_CTO_CHAT_ID: str = os.getenv("HERMES_CTO_CHAT_ID", "789036463")
|
|
HERMES_MEMORY_LIMIT: int = int(os.getenv("HERMES_MEMORY_LIMIT", "24"))
|
|
HERMES_BUILD_URL: str = os.getenv("HERMES_BUILD_URL", "http://10.4.7.27:8798")
|
|
CHROMA_HOST: str = os.getenv("CHROMA_HOST", "chroma")
|
|
CHROMA_PORT: int = int(os.getenv("CHROMA_PORT", "8000"))
|
|
MINIO_ENDPOINT: str = os.getenv("MINIO_ENDPOINT", "minio:9000")
|
|
SESSION_SECRET: str = os.getenv("SESSION_SECRET", "foodlinkk-cockpit-session-change-me-2026")
|
|
SESSION_MAX_AGE: int = int(os.getenv("SESSION_MAX_AGE", str(60 * 60 * 24 * 14))) # 14 days
|
|
|
|
@property
|
|
def database_dsn(self) -> str:
|
|
return (
|
|
f"host={self.DB_HOST} port={self.DB_PORT} dbname={self.DB_NAME} "
|
|
f"user={self.DB_USER} password={self.DB_PASSWORD}"
|
|
)
|
|
|
|
settings = Settings()
|