import os import json from utils import log class ServiceConfig: def __init__(self, config_path="service_config.json"): self.config_path = config_path self.work_mode = None self.cloud_token = None self.system_prompt = None self.spark_endpoint = None self.users = [] self.last_version_number = 0 self.projects = {} self.apis = {} def load(self): try: log(f"📥 Loading service config from {self.config_path}...") with open(self.config_path, "r", encoding="utf-8") as f: config_data = json.load(f) general = config_data.get("config", {}) self.work_mode = general.get("work_mode") self.cloud_token = general.get("cloud_token") self.system_prompt = general.get("system_prompt") self.spark_endpoint = general.get("spark_endpoint") self.last_version_number = general.get("last_version_number", 0) self.users = general.get("users", []) self.apis = config_data.get("apis", {}) projects_data = config_data.get("projects", {}) for project_name, project_info in projects_data.items(): project = { "project_name": project_info.get("project_name"), "enabled": project_info.get("enabled", False), "versions": project_info.get("versions", []) } self.projects[project_name] = project log("✅ Service config loaded successfully.") except Exception as e: log(f"❌ Error loading service config: {e}") raise def get_project(self, project_name): return self.projects.get(project_name) def get_project_versions(self, project_name): project = self.get_project(project_name) return project.get("versions") if project else [] def get_api_config(self, api_name): return self.apis.get(api_name) def get_auth_token(self): if self.work_mode == "hfcloud": return os.getenv("HF_TOKEN") elif self.work_mode == "cloud": return self.cloud_token else: return None