Spaces:
Building
Building
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 | |