feat(ui): AI Settings Overhaul - added dual sliders for model params including top_p
This commit is contained in:
@@ -61,8 +61,8 @@ class GenerateRequest(BaseModel):
|
||||
prompt: str
|
||||
auto_add_history: bool = True
|
||||
temperature: float | None = None
|
||||
top_p: float | None = None
|
||||
max_tokens: int | None = None
|
||||
|
||||
class ConfirmRequest(BaseModel):
|
||||
approved: bool
|
||||
script: Optional[str] = None
|
||||
@@ -199,6 +199,7 @@ class AppController:
|
||||
self._current_provider: str = "gemini"
|
||||
self._current_model: str = "gemini-2.5-flash-lite"
|
||||
self.temperature: float = 0.0
|
||||
self.top_p: float = 1.0
|
||||
self.max_tokens: int = 8192
|
||||
self.history_trunc_limit: int = 8000
|
||||
# UI-related state moved to controller
|
||||
@@ -484,6 +485,7 @@ class AppController:
|
||||
self._predefined_callbacks: dict[str, Callable[..., Any]] = {
|
||||
'_test_callback_func_write_to_file': self._test_callback_func_write_to_file,
|
||||
'_set_env_var': lambda k, v: os.environ.update({k: v}),
|
||||
'_set_attr': lambda k, v: setattr(self, k, v),
|
||||
'_apply_preset': self._apply_preset,
|
||||
'_cb_save_preset': self._cb_save_preset,
|
||||
'_cb_delete_preset': self._cb_delete_preset,
|
||||
@@ -835,6 +837,7 @@ class AppController:
|
||||
self._current_provider = ai_cfg.get("provider", "gemini")
|
||||
self._current_model = ai_cfg.get("model", "gemini-2.5-flash-lite")
|
||||
self.temperature = ai_cfg.get("temperature", 0.0)
|
||||
self.top_p = ai_cfg.get("top_p", 1.0)
|
||||
self.max_tokens = ai_cfg.get("max_tokens", 8192)
|
||||
self.history_trunc_limit = ai_cfg.get("history_trunc_limit", 8000)
|
||||
projects_cfg = self.config.get("projects", {})
|
||||
@@ -1246,7 +1249,7 @@ 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_model_params(self.temperature, self.max_tokens, self.history_trunc_limit)
|
||||
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
|
||||
self._update_gcli_adapter(self.ui_gemini_cli_path)
|
||||
@@ -1633,8 +1636,9 @@ class AppController:
|
||||
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))
|
||||
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
|
||||
tokens = req.max_tokens if req.max_tokens is not None else self.max_tokens
|
||||
ai_client.set_model_params(temp, tokens, self.history_trunc_limit)
|
||||
ai_client.set_model_params(temp, tokens, self.history_trunc_limit, top_p)
|
||||
ai_client.set_agent_tools(self.ui_agent_tools)
|
||||
if req.auto_add_history:
|
||||
with self._pending_history_adds_lock:
|
||||
@@ -2265,6 +2269,7 @@ class AppController:
|
||||
"provider": self.current_provider,
|
||||
"model": self.current_model,
|
||||
"temperature": self.temperature,
|
||||
"top_p": self.top_p,
|
||||
"max_tokens": self.max_tokens,
|
||||
"history_trunc_limit": self.history_trunc_limit,
|
||||
"active_preset": self.ui_global_preset_name,
|
||||
|
||||
Reference in New Issue
Block a user