feat(ai): Implement configurable base system prompt and expose in UI
This commit is contained in:
+14
-5
@@ -233,7 +233,8 @@ class AppController:
|
||||
self.ui_auto_add_history: bool = False
|
||||
self.ui_active_tool_preset: str | None = None
|
||||
self.ui_global_system_prompt: str = ""
|
||||
self.ui_global_tool_instructions: str = ""
|
||||
self.ui_base_system_prompt: str = ""
|
||||
self.ui_use_default_base_prompt: bool = True
|
||||
self.ui_project_context_marker: str = ""
|
||||
self.ui_agent_tools: Dict[str, bool] = {}
|
||||
self.available_models: List[str] = []
|
||||
@@ -355,6 +356,8 @@ class AppController:
|
||||
'manual_approve': 'ui_manual_approve',
|
||||
'global_system_prompt': 'ui_global_system_prompt',
|
||||
'project_system_prompt': 'ui_project_system_prompt',
|
||||
'base_system_prompt': 'ui_base_system_prompt',
|
||||
'use_default_base_prompt': 'ui_use_default_base_prompt',
|
||||
'global_preset_name': 'ui_global_preset_name',
|
||||
'project_preset_name': 'ui_project_preset_name',
|
||||
'ui_active_tool_preset': 'ui_active_tool_preset',
|
||||
@@ -409,6 +412,8 @@ class AppController:
|
||||
'bg_shader_enabled': 'bg_shader_enabled',
|
||||
'global_system_prompt': 'ui_global_system_prompt',
|
||||
'project_system_prompt': 'ui_project_system_prompt',
|
||||
'base_system_prompt': 'ui_base_system_prompt',
|
||||
'use_default_base_prompt': 'ui_use_default_base_prompt',
|
||||
'global_preset_name': 'ui_global_preset_name',
|
||||
'project_preset_name': 'ui_project_preset_name',
|
||||
'ui_active_tool_preset': 'ui_active_tool_preset',
|
||||
@@ -915,7 +920,8 @@ class AppController:
|
||||
self.ui_word_wrap = proj_meta.get("word_wrap", True)
|
||||
self.ui_auto_add_history = disc_sec.get("auto_add", False)
|
||||
self.ui_global_system_prompt = self.config.get("ai", {}).get("system_prompt", "")
|
||||
self.ui_global_tool_instructions = self.config.get("ai", {}).get("tool_instructions", "")
|
||||
self.ui_base_system_prompt = self.config.get("ai", {}).get("base_system_prompt", "")
|
||||
self.ui_use_default_base_prompt = self.config.get("ai", {}).get("use_default_base_prompt", True)
|
||||
self.ui_project_context_marker = proj_meta.get("context_marker", "")
|
||||
|
||||
self.preset_manager = presets.PresetManager(Path(self.active_project_path).parent if self.active_project_path else None)
|
||||
@@ -1408,7 +1414,8 @@ class AppController:
|
||||
self.ai_response = ""
|
||||
csp = filter(bool, [self.ui_global_system_prompt.strip(), self.ui_project_system_prompt.strip()])
|
||||
ai_client.set_custom_system_prompt("\n\n".join(csp))
|
||||
ai_client.set_global_tool_instructions(self.ui_global_tool_instructions)
|
||||
ai_client.set_base_system_prompt(self.ui_base_system_prompt)
|
||||
ai_client.set_use_default_base_prompt(self.ui_use_default_base_prompt)
|
||||
ai_client.set_project_context_marker(self.ui_project_context_marker)
|
||||
ai_client.set_model_params(self.temperature, self.max_tokens, self.history_trunc_limit, self.top_p)
|
||||
ai_client.set_agent_tools(self.ui_agent_tools) # Force update adapter path right before send to bypass potential duplication issues
|
||||
@@ -1828,7 +1835,8 @@ class AppController:
|
||||
base_dir = self.active_project_root
|
||||
csp = filter(bool, [self.ui_global_system_prompt.strip(), self.ui_project_system_prompt.strip()])
|
||||
ai_client.set_custom_system_prompt("\n\n".join(csp))
|
||||
ai_client.set_global_tool_instructions(self.ui_global_tool_instructions)
|
||||
ai_client.set_base_system_prompt(self.ui_base_system_prompt)
|
||||
ai_client.set_use_default_base_prompt(self.ui_use_default_base_prompt)
|
||||
ai_client.set_project_context_marker(self.ui_project_context_marker)
|
||||
temp = req.temperature if req.temperature is not None else self.temperature
|
||||
top_p = req.top_p if req.top_p is not None else self.top_p
|
||||
@@ -2496,7 +2504,8 @@ class AppController:
|
||||
"active_preset": self.ui_global_preset_name,
|
||||
}
|
||||
self.config["ai"]["system_prompt"] = self.ui_global_system_prompt
|
||||
self.config["ai"]["tool_instructions"] = self.ui_global_tool_instructions
|
||||
self.config["ai"]["base_system_prompt"] = self.ui_base_system_prompt
|
||||
self.config["ai"]["use_default_base_prompt"] = self.ui_use_default_base_prompt
|
||||
self.config["projects"] = {"paths": self.project_paths, "active": self.active_project_path}
|
||||
from src import bg_shader
|
||||
# Update gui section while preserving other keys like bg_shader_enabled
|
||||
|
||||
Reference in New Issue
Block a user