修复/kb/update

This commit is contained in:
2025-10-29 11:09:36 +08:00
parent d174de94b6
commit 6f2f26be10
2 changed files with 42 additions and 1 deletions

View File

@@ -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:

View File

@@ -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="页面排名")