KiWA001 commited on
Commit
d6bc8b2
·
1 Parent(s): 18e6d2d

perf: cache global system prompt on startup to avoid i/o blocking

Browse files
Files changed (1) hide show
  1. engine.py +16 -12
engine.py CHANGED
@@ -97,6 +97,15 @@ class AIEngine:
97
  self._valid_provider_models.add(m)
98
  self._valid_provider_models.add(f"{p_name}/{m}")
99
 
 
 
 
 
 
 
 
 
 
100
  def _load_stats(self):
101
  """Load persistent stats from Supabase."""
102
  if not self.supabase:
@@ -376,21 +385,16 @@ class AIEngine:
376
  enabled_providers = state_manager.get_enabled_provider_ids()
377
 
378
  # --- GLOBAL SYSTEM PROMPT INJECTION ---
379
- try:
380
- with open("system_prompt.md", "r") as f:
381
- template = f.read()
382
  # If the template contains {prompt}, use it for formatting
383
- if "{prompt}" in template:
384
- prompt = template.format(prompt=prompt)
385
  else:
386
  # Fallback: Prepend if no placeholder key
387
- prompt = f"{template}\n\nUser message:\n{prompt}"
388
-
389
- # DEBUG LOGGING (Temporary)
390
- # logger.info(f"--- FINAL PROMPT SENT TO PROVIDER ---\n{prompt}\n---------------------------------------")
391
-
392
- except Exception as e:
393
- logger.warning(f"Failed to load system_prompt.md: {e}")
394
  # -------------------------------------
395
 
396
  # Build valid sets from enabled providers only
 
97
  self._valid_provider_models.add(m)
98
  self._valid_provider_models.add(f"{p_name}/{m}")
99
 
100
+ # Load System Prompt ONCE
101
+ self.system_prompt_template = ""
102
+ try:
103
+ with open("system_prompt.md", "r") as f:
104
+ self.system_prompt_template = f.read()
105
+ logger.info("✅ Global System Prompt loaded")
106
+ except Exception as e:
107
+ logger.warning(f"⚠️ Failed to load system_prompt.md (will use raw prompt): {e}")
108
+
109
  def _load_stats(self):
110
  """Load persistent stats from Supabase."""
111
  if not self.supabase:
 
385
  enabled_providers = state_manager.get_enabled_provider_ids()
386
 
387
  # --- GLOBAL SYSTEM PROMPT INJECTION ---
388
+ if self.system_prompt_template:
389
+ try:
 
390
  # If the template contains {prompt}, use it for formatting
391
+ if "{prompt}" in self.system_prompt_template:
392
+ prompt = self.system_prompt_template.format(prompt=prompt)
393
  else:
394
  # Fallback: Prepend if no placeholder key
395
+ prompt = f"{self.system_prompt_template}\n\nUser message:\n{prompt}"
396
+ except Exception as e:
397
+ logger.warning(f"Failed to format system prompt: {e}")
 
 
 
 
398
  # -------------------------------------
399
 
400
  # Build valid sets from enabled providers only