init
This commit is contained in:
62
config.py
Normal file
62
config.py
Normal file
@@ -0,0 +1,62 @@
|
||||
"""
|
||||
Загрузка конфигурации из переменных окружения.
|
||||
"""
|
||||
|
||||
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")
|
||||
),
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user