Spaces:
Sleeping
Sleeping
perf: cache global system prompt on startup to avoid i/o blocking
Browse files
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 |
-
|
| 380 |
-
|
| 381 |
-
template = f.read()
|
| 382 |
# If the template contains {prompt}, use it for formatting
|
| 383 |
-
if "{prompt}" in
|
| 384 |
-
prompt =
|
| 385 |
else:
|
| 386 |
# Fallback: Prepend if no placeholder key
|
| 387 |
-
prompt = f"{
|
| 388 |
-
|
| 389 |
-
|
| 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
|