From c590aef4601f5d11023d2c28f5985b57b6a69bfa Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Sun, 30 Nov 2025 13:08:55 +0800 Subject: [PATCH] fix: tweak thinking interval scheduling --- web_server.py | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/web_server.py b/web_server.py index 2ee1c90..53951c0 100644 --- a/web_server.py +++ b/web_server.py @@ -55,6 +55,8 @@ from modules.upload_security import UploadQuarantineManager, UploadSecurityError from modules.personalization_manager import ( load_personalization_config, save_personalization_config, + THINKING_INTERVAL_MIN, + THINKING_INTERVAL_MAX, ) from modules.user_container_manager import UserContainerManager from modules.usage_tracker import UsageTracker @@ -676,12 +678,18 @@ def apply_thinking_schedule(terminal: WebTerminal): state["fast_streak"] = 0 debug_log("[Thinking] 响应失败,下一次强制思考。") return - interval = max(0, THINKING_FAST_INTERVAL or 0) - if interval > 0 and state.get("fast_streak", 0) >= interval: - client.force_thinking_next_call = True - state["fast_streak"] = 0 - debug_log(f"[Thinking] 连续快速 {interval} 次,下一次强制思考。") - return + custom_interval = getattr(terminal, "thinking_fast_interval", THINKING_FAST_INTERVAL) + interval = max(0, custom_interval or 0) + if interval > 0: + allowed_fast = max(0, interval - 1) + if state.get("fast_streak", 0) >= allowed_fast: + client.force_thinking_next_call = True + state["fast_streak"] = 0 + if allowed_fast == 0: + debug_log("[Thinking] 频率=1,持续思考。") + else: + debug_log(f"[Thinking] 快速模式已连续 {allowed_fast} 次,下一次强制思考。") + return client.force_thinking_next_call = False client.skip_thinking_next_call = False @@ -1075,7 +1083,16 @@ def get_personalization_settings(terminal: WebTerminal, workspace: UserWorkspace """获取个性化配置""" try: data = load_personalization_config(workspace.data_dir) - return jsonify({"success": True, "data": data}) + return jsonify({ + "success": True, + "data": data, + "tool_categories": terminal.get_tool_settings_snapshot(), + "thinking_interval_default": THINKING_FAST_INTERVAL, + "thinking_interval_range": { + "min": THINKING_INTERVAL_MIN, + "max": THINKING_INTERVAL_MAX + } + }) except Exception as exc: return jsonify({"success": False, "error": str(exc)}), 500 @@ -1089,7 +1106,20 @@ def update_personalization_settings(terminal: WebTerminal, workspace: UserWorksp payload = request.get_json() or {} try: config = save_personalization_config(workspace.data_dir, payload) - return jsonify({"success": True, "data": config}) + try: + terminal.apply_personalization_preferences(config) + except Exception as exc: + debug_log(f"应用个性化偏好失败: {exc}") + return jsonify({ + "success": True, + "data": config, + "tool_categories": terminal.get_tool_settings_snapshot(), + "thinking_interval_default": THINKING_FAST_INTERVAL, + "thinking_interval_range": { + "min": THINKING_INTERVAL_MIN, + "max": THINKING_INTERVAL_MAX + } + }) except ValueError as exc: return jsonify({"success": False, "error": str(exc)}), 400 except Exception as exc: