feat: update prompts and backend

This commit is contained in:
JOJO 2025-11-22 18:17:24 +08:00
parent d0af9755c6
commit 089a3ad0c9
6 changed files with 55 additions and 1 deletions

View File

@ -42,6 +42,10 @@ from modules.sub_agent_manager import SubAgentManager
from modules.webpage_extractor import extract_webpage_content, tavily_extract
from modules.ocr_client import OCRClient
from modules.easter_egg_manager import EasterEggManager
from modules.personalization_manager import (
load_personalization_config,
build_personalization_prompt,
)
from core.tool_config import TOOL_CATEGORIES
from utils.api_client import DeepSeekClient
from utils.context_manager import ContextManager
@ -2165,6 +2169,18 @@ class MainTerminal:
if thinking_prompt:
messages.append({"role": "system", "content": thinking_prompt})
personalization_config = load_personalization_config(self.data_dir)
personalization_block = build_personalization_prompt(personalization_config, include_header=False)
if personalization_block:
personalization_template = self.load_prompt("personalization").strip()
if personalization_template and "{personalization_block}" in personalization_template:
personalization_text = personalization_template.format(personalization_block=personalization_block)
elif personalization_template:
personalization_text = f"{personalization_template}\n{personalization_block}"
else:
personalization_text = personalization_block
messages.append({"role": "system", "content": personalization_text})
# 添加对话历史保留完整结构包括tool_calls和tool消息
conversation = context["conversation"]
for idx, conv in enumerate(conversation):

View File

@ -16,6 +16,7 @@ from config import (
USER_SPACE_DIR,
USERS_DB_FILE,
)
from modules.personalization_manager import ensure_personalization_config
@dataclass
@ -128,6 +129,7 @@ class UserManager:
# 初始化数据子目录
(data_dir / "conversations").mkdir(parents=True, exist_ok=True)
(data_dir / "backups").mkdir(parents=True, exist_ok=True)
ensure_personalization_config(data_dir)
return UserWorkspace(
username=username,

View File

@ -257,3 +257,5 @@ tree -L 2
5. **正确执行**:和用户主动确认细节,用户明确告知可以开始任务后,再开始工作流程
记住:你的用户可能不懂技术,你的目标是让他们感觉到"这个助手真好用",而不是"怎么这么复杂"。
如果用户设置了个性化信息,根据用户的个性化需求回答

View File

@ -0,0 +1,2 @@
以下内容为用户提供的个性化设置信息,请务必在整个任务过程中遵循:
{personalization_block}

View File

@ -13,6 +13,7 @@
* 是否需要创建/修改/删除文件、运行终端命令或脚本?
* 是否需要创建/等待/关闭子智能体?
* 是否需要更新主记忆或任务记忆?
* 如果用户开启了个性化模式,要考虑哪些用户要求的必须考虑的点?
2. **正式输出阶段**
- 直接向用户说明你的计划:描述每一步准备做什么、需要哪些工具或文件。

View File

@ -46,6 +46,10 @@ from config import (
)
from modules.user_manager import UserManager, UserWorkspace
from modules.gui_file_manager import GuiFileManager
from modules.personalization_manager import (
load_personalization_config,
save_personalization_config,
)
app = Flask(__name__, static_folder='static')
app.config['MAX_CONTENT_LENGTH'] = MAX_UPLOAD_SIZE
@ -649,6 +653,33 @@ def update_thinking_mode(terminal: WebTerminal, workspace: UserWorkspace, userna
"message": "切换思考模式时发生异常"
}), 500
@app.route('/api/personalization', methods=['GET'])
@api_login_required
@with_terminal
def get_personalization_settings(terminal: WebTerminal, workspace: UserWorkspace, username: str):
"""获取个性化配置"""
try:
data = load_personalization_config(workspace.data_dir)
return jsonify({"success": True, "data": data})
except Exception as exc:
return jsonify({"success": False, "error": str(exc)}), 500
@app.route('/api/personalization', methods=['POST'])
@api_login_required
@with_terminal
def update_personalization_settings(terminal: WebTerminal, workspace: UserWorkspace, username: str):
"""更新个性化配置"""
payload = request.get_json() or {}
try:
config = save_personalization_config(workspace.data_dir, payload)
return jsonify({"success": True, "data": config})
except ValueError as exc:
return jsonify({"success": False, "error": str(exc)}), 400
except Exception as exc:
return jsonify({"success": False, "error": str(exc)}), 500
@app.route('/api/files')
@api_login_required
@with_terminal