From fa56bca143b3d4e640f0a5c90c56c095715ff804 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Sat, 23 Aug 2025 17:39:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E4=BB=A3=E7=A0=81=E5=92=8C=E6=B3=A8?= =?UTF-8?q?=E9=87=8A=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 SettingView.vue 中的 TODO 注释 - 移除 AgentView.vue 和 AgentChatComponent.vue 中侧边栏互斥逻辑 - 删除 kb_manager.py 中未实现的 migrate_database 方法 - 将操作日志功能提取到 common_utils.py - 修复文件末尾缺少换行符的问题 --- server/routers/auth_router.py | 15 +------------ server/routers/knowledge_router.py | 2 +- server/utils/common_utils.py | 26 +++++++++++++++++++++++ src/knowledge/kb_manager.py | 16 -------------- src/knowledge/lightrag_kb.py | 2 +- web/src/components/AgentChatComponent.vue | 4 ---- web/src/views/AgentView.vue | 4 ---- web/src/views/SettingView.vue | 1 - 8 files changed, 29 insertions(+), 41 deletions(-) create mode 100644 server/utils/common_utils.py diff --git a/server/routers/auth_router.py b/server/routers/auth_router.py index 62e6fe2a..51689741 100644 --- a/server/routers/auth_router.py +++ b/server/routers/auth_router.py @@ -8,6 +8,7 @@ from server.db_manager import db_manager from server.models.user_model import User, OperationLog from server.utils.auth_utils import AuthUtils from server.utils.auth_middleware import get_db, get_current_user, get_admin_user, get_superadmin_user, oauth2_scheme +from server.utils.common_utils import log_operation # 创建路由器 auth = APIRouter(prefix="/auth", tags=["authentication"]) @@ -45,20 +46,6 @@ class InitializeAdmin(BaseModel): # === 工具函数 === # ============================================================================= -# 记录操作日志 -def log_operation(db: Session, user_id: int, operation: str, details: str = None, request: Request = None): - ip_address = None - if request: - ip_address = request.client.host if request.client else None - - log = OperationLog( - user_id=user_id, - operation=operation, - details=details, - ip_address=ip_address - ) - db.add(log) - db.commit() # 路由:登录获取令牌 # ============================================================================= diff --git a/server/routers/knowledge_router.py b/server/routers/knowledge_router.py index 41da8df4..68baa99d 100644 --- a/server/routers/knowledge_router.py +++ b/server/routers/knowledge_router.py @@ -450,4 +450,4 @@ async def get_knowledge_base_statistics(current_user: User = Depends(get_admin_u return {"stats": stats, "message": "success"} except Exception as e: logger.error(f"获取知识库统计失败 {e}, {traceback.format_exc()}") - return {"message": f"获取知识库统计失败 {e}", "stats": {}} \ No newline at end of file + return {"message": f"获取知识库统计失败 {e}", "stats": {}} diff --git a/server/utils/common_utils.py b/server/utils/common_utils.py new file mode 100644 index 00000000..5a19a855 --- /dev/null +++ b/server/utils/common_utils.py @@ -0,0 +1,26 @@ +"""通用工具函数""" + +from sqlalchemy.orm import Session +from fastapi import Request +from server.models.user_model import User, OperationLog + + +def log_operation(db: Session, user_id: int, operation: str, details: str = None, request: Request = None): + """记录用户操作日志""" + ip_address = None + if request: + ip_address = request.client.host if request.client else None + + log = OperationLog( + user_id=user_id, + operation=operation, + details=details, + ip_address=ip_address + ) + db.add(log) + db.commit() + + +def get_user_dict(user: User, include_password: bool = False) -> dict: + """获取用户字典表示""" + return user.to_dict(include_password) diff --git a/src/knowledge/kb_manager.py b/src/knowledge/kb_manager.py index d70e7ee4..eea9f7e1 100644 --- a/src/knowledge/kb_manager.py +++ b/src/knowledge/kb_manager.py @@ -298,22 +298,6 @@ class KnowledgeBaseManager: } return info - def migrate_database(self, db_id: str, target_kb_type: str) -> dict: - """ - 迁移数据库到不同的知识库类型 - - Args: - db_id: 数据库ID - target_kb_type: 目标知识库类型 - - Returns: - 迁移结果 - - 注意:这是一个复杂的操作,需要重新索引所有数据 - """ - # TODO: 实现数据库迁移逻辑 - raise NotImplementedError("Database migration not implemented yet") - def get_statistics(self) -> dict: """获取统计信息""" stats = { diff --git a/src/knowledge/lightrag_kb.py b/src/knowledge/lightrag_kb.py index 174350c3..31675043 100644 --- a/src/knowledge/lightrag_kb.py +++ b/src/knowledge/lightrag_kb.py @@ -379,4 +379,4 @@ class LightRagKB(KnowledgeBase): # ) # logger.info(f"Successfully created export file: {output_filepath}") - # return output_filepath \ No newline at end of file + # return output_filepath diff --git a/web/src/components/AgentChatComponent.vue b/web/src/components/AgentChatComponent.vue index 333cddb9..0b42a3bb 100644 --- a/web/src/components/AgentChatComponent.vue +++ b/web/src/components/AgentChatComponent.vue @@ -1288,10 +1288,6 @@ const scrollToBottom = async () => { const toggleSidebar = () => { state.isSidebarOpen = !state.isSidebarOpen; localStorage.setItem('chat_sidebar_open', state.isSidebarOpen); - // 当打开聊天侧边栏时,关闭配置侧边栏 - if (state.isSidebarOpen) { - emit('close-config-sidebar'); - } console.log("toggleSidebar", state.isSidebarOpen); } diff --git a/web/src/views/AgentView.vue b/web/src/views/AgentView.vue index bfe9e063..c73033c0 100644 --- a/web/src/views/AgentView.vue +++ b/web/src/views/AgentView.vue @@ -390,10 +390,6 @@ const toggleDebugMode = () => { const toggleConf = () => { state.isConfigSidebarOpen = !state.isConfigSidebarOpen - // 当打开配置侧边栏时,关闭聊天侧边栏 - if (state.isConfigSidebarOpen) { - state.isChatSidebarOpen = false - } } diff --git a/web/src/views/SettingView.vue b/web/src/views/SettingView.vue index a77aacbf..d592e388 100644 --- a/web/src/views/SettingView.vue +++ b/web/src/views/SettingView.vue @@ -1,5 +1,4 @@