Files
tg-digest-docker/config.py
Тимур Абайдулин ba1245a06c init
2026-02-07 16:31:46 +03:00

63 lines
2.4 KiB
Python

"""
Загрузка конфигурации из переменных окружения.
"""
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")
),
},
}