FreshPixels commited on
Commit
80f9365
·
verified ·
1 Parent(s): 0af83ca

Update server/state.py

Browse files
Files changed (1) hide show
  1. server/state.py +54 -1
server/state.py CHANGED
@@ -19,6 +19,29 @@ class PinkSkyState:
19
  cls._instance = super().__new__(cls)
20
  return cls._instance
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  def __init__(self):
23
  if PinkSkyState._initialized:
24
  return
@@ -343,7 +366,37 @@ FORMAT (STRICT JSON):
343
  self.build_history = data.get("build", [])
344
  except Exception as e:
345
  print(f"⚠️ Ошибка загрузки истории: {e}")
346
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  def save_roles(self):
348
  data = {k: {"name": v.name, "prompt": v.prompt, "description": v.description,
349
  "preferred_models": v.preferred_models, "complexity": v.complexity, "tags": v.tags}
 
19
  cls._instance = super().__new__(cls)
20
  return cls._instance
21
 
22
+ def load_all(self):
23
+ """Загружает модели, роли и кондукторы из файлов."""
24
+ self._load_models()
25
+ self._load_roles()
26
+ self._load_conductors()
27
+ self._load_history()
28
+
29
+ def _load_models(self):
30
+ defaults = {
31
+ name: self._build_model_config(name, data)
32
+ for name, data in MODEL_RANKING.items()
33
+ }
34
+ if os.path.exists(MODELS_FILE):
35
+ try:
36
+ with open(MODELS_FILE, "r", encoding="utf-8") as f:
37
+ custom = json.load(f)
38
+ for k, v in custom.items():
39
+ if k not in defaults:
40
+ defaults[k] = ModelConfig(**v)
41
+ except Exception as e:
42
+ self.logger.error(f"Ошибка загрузки models.json: {e}")
43
+ self.models = defaults
44
+
45
  def __init__(self):
46
  if PinkSkyState._initialized:
47
  return
 
366
  self.build_history = data.get("build", [])
367
  except Exception as e:
368
  print(f"⚠️ Ошибка загрузки истории: {e}")
369
+ def __init__(self):
370
+ if PinkSkyState._initialized:
371
+ return
372
+ PinkSkyState._initialized = True
373
+ self.logger = logging.getLogger(__name__)
374
+ self.models: Dict[str, ModelConfig] = {}
375
+ self.roles: Dict[str, Role] = {}
376
+ self.conductors: Dict[str, Conductor] = {}
377
+ self.current_mode: str = "chat"
378
+ self.current_conductor: str = "default"
379
+ self.current_role: str = "universal"
380
+ self.current_model: str = "deepseek-v4-pro"
381
+ self.chat_history: List[Dict[str, str]] = []
382
+ self.skill_history: List[Dict[str, str]] = []
383
+ self.build_history: List[Dict[str, str]] = []
384
+ self.build_context: Dict[str, Any] = {
385
+ "spec": "",
386
+ "agents": 3,
387
+ "models_tier": "tier1",
388
+ "skills_count": 2,
389
+ "files_count": 3,
390
+ "role": "universal",
391
+ "strategy": "parallel",
392
+ "use_interpreter": True,
393
+ "notifications": True,
394
+ "internet_access": True,
395
+ }
396
+ self.cancel_flag: bool = False
397
+ self.last_history_save: Optional[datetime] = None
398
+ self.load_all() # Теперь метод load_all доступен
399
+
400
  def save_roles(self):
401
  data = {k: {"name": v.name, "prompt": v.prompt, "description": v.description,
402
  "preferred_models": v.preferred_models, "complexity": v.complexity, "tags": v.tags}