Spaces:
Running
Running
File size: 2,177 Bytes
c0426da 1e931f8 c0426da da164cc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import json
import os
import logging
from typing import Dict, Any, Optional
logger = logging.getLogger(__name__)
CONFIG_FILE = "guild_configs.json"
def _load_all_configs() -> Dict[str, Dict[str, Any]]:
"""Odczytuje konfiguracje wszystkich serwerów z pliku."""
if os.path.exists(CONFIG_FILE):
try:
with open(CONFIG_FILE, "r", encoding="utf-8") as f:
return json.load(f)
except Exception as e:
logger.error(f"Błąd podczas odczytu pliku konfiguracji: {e}")
return {}
def _save_all_configs(configs: Dict[str, Dict[str, Any]]):
"""Zapisuje konfiguracje na dysk."""
try:
with open(CONFIG_FILE, "w", encoding="utf-8") as f:
json.dump(configs, f, indent=4, ensure_ascii=False)
except Exception as e:
logger.error(f"Błąd podczas zapisu pliku konfiguracji: {e}")
def save_guild_config(guild_id: str, config_data: Dict[str, Any]):
"""Zapisuje kompletną konfigurację dla danego serwera Discord."""
configs = _load_all_configs()
configs[guild_id] = config_data
_save_all_configs(configs)
def get_active_text_model(guild_id: str) -> Optional[str]:
"""
Zwraca wybrany model dla serwera.
Zwraca None, jeśli konfiguracja nie istnieje lub model jest ustawiony na 'none'.
"""
configs = _load_all_configs()
guild_config = configs.get(guild_id, {})
model = guild_config.get("active_text_model", "none")
if not model or model.lower() == "none":
return None
return model
def get_active_image_model(guild_id: str) -> Optional[str]:
"""Zwraca aktywny model obrazu dla serwera. Jeśli brak konfiguracji, zwraca None."""
configs = _load_all_configs()
guild_config = configs.get(guild_id, {})
model = guild_config.get("active_image_model", "none")
if not model or model.lower() == "none":
return None
return model
def is_multi_model_enabled(guild_id: str) -> bool:
"""Sprawdza, czy dla danej gildii włączony jest tryb wielomodelowy."""
configs = _load_all_configs()
guild_config = configs.get(guild_id, {})
return guild_config.get("multi_model_workflow", False) |