/
azathd
/
mutiagent
Обзор
Документация
Войти
/
azathd
/
mutiagent
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/common/settings.py
61 строка
3 KB
Your Name
init
15 май 2026, 19:41
15 май 2026, 19:41
79a6f12
Код
Авторство
О чём код?
"""Environment-backed settings (single source for agents).""" from __future__ import annotations import os from functools import lru_cache @lru_cache def env(key: str, default: str = "") -> str: return os.environ.get(key, default) def require_env(key: str) -> str: val = os.environ.get(key) if not val: msg = f"Missing required env var: {key}" raise RuntimeError(msg) return val class Settings: nats_url: str = env("NATS_URL", "nats://nats:4222") redis_url: str = env("REDIS_URL", "redis://redis:6379/0") database_url: str = env( "DATABASE_URL", "postgresql+asyncpg://app:changeme_secret@postgres:5432/xray_multiagent", ) clickhouse_url: str = env("CLICKHOUSE_HTTP_URL", "http://clickhouse:8123") minio_endpoint: str = env("MINIO_ENDPOINT", "http://minio:9000") minio_access_key: str = env("MINIO_ROOT_USER", "minio") minio_secret_key: str = env("MINIO_ROOT_PASSWORD", "changeme_minio") marzban_api_url: str = env("MARZBAN_API_URL", "") marzban_token_file: str = env("MARZBAN_API_TOKEN_FILE", "/run/secrets/marzban_token") executor_dry_run: bool = env("EXECUTOR_DRY_RUN", "true").lower() == "true" openai_api_key: str = env("OPENAI_API_KEY", "") openai_base_url: str = env("OPENAI_BASE_URL", "https://api.openai.com/v1") openai_model: str = env("OPENAI_MODEL", "gpt-4o-mini") # Skip LLM on rate_limit_user (set false to call LLM, throttled per user in security) security_llm_skip_rate_limit: bool = env("SECURITY_LLM_SKIP_RATE_LIMIT", "false").lower() in ( "1", "true", "yes", ) security_llm_rate_limit_cooldown_sec: int = int(env("SECURITY_LLM_RATE_LIMIT_COOLDOWN_SEC", "300")) security_rate_limit_rpm: int = int(env("SECURITY_RATE_LIMIT_RPM", "500")) jwt_secret: str = env("JWT_SECRET", "dev-insecure-change-me") jwt_algorithm: str = env("JWT_ALGORITHM", "HS256") marzban_log_dir: str = env("MARZBAN_LOG_DIR", "/mnt/marzban/xray-logs") geoip_db_path: str = env("GEOIP_DB_PATH", "/var/lib/geoip/GeoLite2-City.mmdb") config_path: str = env("CONFIG_PATH", "/app/config.yaml") policies_path: str = env("POLICIES_PATH", "/app/policies.yaml") rules_path: str = env("RULES_PATH", "/app/rules/default.yaml") report_timezone: str = env("REPORT_TIMEZONE", "UTC") telegram_bot_token: str = env("TELEGRAM_BOT_TOKEN", "") smtp_host: str = env("SMTP_HOST", "") slack_webhook_url: str = env("SLACK_WEBHOOK_URL", "") auth_disabled: bool = env("AUTH_DISABLED", "false").lower() in ("1", "true", "yes") settings = Settings()