""" Загрузка конфигурации из переменных окружения. """ import os from pathlib import Path from dotenv import load_dotenv # Загружаем .env если есть (в Docker пробрасывается через env_file) env_path = Path(__file__).parent / ".env" if env_path.exists(): load_dotenv(env_path) def get_config() -> dict: """Собрать конфиг из переменных окружения.""" return { "telegram": { "api_id": int(os.environ["TG_API_ID"]), "api_hash": os.environ["TG_API_HASH"], "session_name": os.environ.get("TG_SESSION_NAME", "digest_session"), "channels": [ ch.strip() for ch in os.environ.get("TG_CHANNELS", "").split(",") if ch.strip() ], "hours_back": int(os.environ.get("TG_HOURS_BACK", "12")), "max_messages_per_channel": int( os.environ.get("TG_MAX_MESSAGES_PER_CHANNEL", "50") ), "delay_between_channels": float( os.environ.get("TG_DELAY_BETWEEN_CHANNELS", "2") ), "min_message_length": int( os.environ.get("TG_MIN_MESSAGE_LENGTH", "50") ), }, "llm": { "provider": os.environ.get("LLM_PROVIDER", "ollama"), "anthropic_api_key": os.environ.get("ANTHROPIC_API_KEY", ""), "anthropic_model": os.environ.get( "ANTHROPIC_MODEL", "claude-sonnet-4-20250514" ), "openai_api_key": os.environ.get("OPENAI_API_KEY", ""), "openai_model": os.environ.get("OPENAI_MODEL", "gpt-4o-mini"), "ollama_url": os.environ.get( "OLLAMA_URL", "http://host.docker.internal:11434" ), "ollama_model": os.environ.get("OLLAMA_MODEL", "gemma3:12b"), "max_tokens": int(os.environ.get("LLM_MAX_TOKENS", "4096")), "language": os.environ.get("LLM_LANGUAGE", "русский"), }, "delivery": { "method": os.environ.get("DELIVERY_METHOD", "saved_messages"), "bot_token": os.environ.get("BOT_TOKEN", ""), "chat_id": os.environ.get("BOT_CHAT_ID", ""), "max_message_length": int( os.environ.get("DELIVERY_MAX_MESSAGE_LENGTH", "4000") ), }, }