Spaces:
Running
Running
| 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) |