From 6f2f26be1074e81341ab79a9ca3e6fb316b67006 Mon Sep 17 00:00:00 2001 From: dangzerong <429714019@qq.com> Date: Wed, 29 Oct 2025 11:09:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D/kb/update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/apps/kb_app.py | 37 ++++++++++++++++++++++++++++++++++++- api/models/kb_models.py | 6 ++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/api/apps/kb_app.py b/api/apps/kb_app.py index 9c75dd2..ae8f33d 100644 --- a/api/apps/kb_app.py +++ b/api/apps/kb_app.py @@ -174,10 +174,26 @@ async def update( return get_data_error_result( message="Duplicated knowledgebase name.") + # 构建更新数据,包含所有可更新的字段 update_data = { "name": name, "pagerank": request.pagerank } + + # 添加可选字段(如果提供了的话) + if request.description is not None: + update_data["description"] = request.description + if request.permission is not None: + update_data["permission"] = request.permission + if request.avatar is not None: + update_data["avatar"] = request.avatar + if request.parser_id is not None: + update_data["parser_id"] = request.parser_id + if request.embd_id is not None: + update_data["embd_id"] = request.embd_id + if request.parser_config is not None: + update_data["parser_config"] = request.parser_config + if not KnowledgebaseService.update_by_id(kb.id, update_data): return get_data_error_result() @@ -195,7 +211,26 @@ async def update( return get_data_error_result( message="Database error (Knowledgebase rename)!") kb = kb.to_dict() - kb.update(update_data) + + # 使用完整的请求数据更新返回结果,保持与原来代码的一致性 + request_data = { + "name": name, + "pagerank": request.pagerank + } + if request.description is not None: + request_data["description"] = request.description + if request.permission is not None: + request_data["permission"] = request.permission + if request.avatar is not None: + request_data["avatar"] = request.avatar + if request.parser_id is not None: + request_data["parser_id"] = request.parser_id + if request.embd_id is not None: + request_data["embd_id"] = request.embd_id + if request.parser_config is not None: + request_data["parser_config"] = request.parser_config + + kb.update(request_data) return get_json_result(data=kb) except Exception as e: diff --git a/api/models/kb_models.py b/api/models/kb_models.py index 6fb66dd..a66bff4 100644 --- a/api/models/kb_models.py +++ b/api/models/kb_models.py @@ -30,6 +30,12 @@ class UpdateKnowledgeBaseRequest(BaseModel): """更新知识库请求模型""" kb_id: str = Field(..., description="知识库ID") name: str = Field(..., description="知识库名称") + description: Optional[str] = Field(None, description="知识库描述") + permission: Optional[str] = Field(None, description="权限设置") + avatar: Optional[str] = Field(None, description="头像base64字符串") + parser_id: Optional[str] = Field(None, description="解析器ID") + embd_id: Optional[str] = Field(None, description="嵌入模型ID") + parser_config: Optional[Dict[str, Any]] = Field(None, description="解析器配置") pagerank: Optional[int] = Field(0, description="页面排名")