From a4625b01f8f4663a1aec89056956bf492e500d3c Mon Sep 17 00:00:00 2001 From: Kevin Hu Date: Mon, 17 Nov 2025 13:14:54 +0800 Subject: [PATCH] Continue... --- api/apps/kb_app.py | 9 ++++++--- api/apps/sdk/dataset.py | 5 ++++- api/db/services/knowledgebase_service.py | 8 ++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/api/apps/kb_app.py b/api/apps/kb_app.py index efa254c5a..96efcdc10 100644 --- a/api/apps/kb_app.py +++ b/api/apps/kb_app.py @@ -48,17 +48,20 @@ from api.apps import login_required, current_user @validate_request("name") async def create(): req = await request.json - req = KnowledgebaseService.create_with_name( + e, res = KnowledgebaseService.create_with_name( name = req.pop("name", None), tenant_id = current_user.id, parser_id = req.pop("parser_id", None), **req ) + if not e: + return res + try: - if not KnowledgebaseService.save(**req): + if not KnowledgebaseService.save(**res): return get_data_error_result() - return get_json_result(data={"kb_id":req["id"]}) + return get_json_result(data={"kb_id":res["id"]}) except Exception as e: return server_error_response(e) diff --git a/api/apps/sdk/dataset.py b/api/apps/sdk/dataset.py index a5cbf5499..ff860324c 100644 --- a/api/apps/sdk/dataset.py +++ b/api/apps/sdk/dataset.py @@ -119,13 +119,16 @@ async def create(tenant_id): req, err = await validate_and_parse_json_request(request, CreateDatasetReq) if err is not None: return get_error_argument_result(err) - req = KnowledgebaseService.create_with_name( + e, req = KnowledgebaseService.create_with_name( name = req.pop("name", None), tenant_id = tenant_id, parser_id = req.pop("parser_id", None), **req ) + if not e: + return req + # Insert embedding model(embd id) ok, t = TenantService.get_by_id(tenant_id) if not ok: diff --git a/api/db/services/knowledgebase_service.py b/api/db/services/knowledgebase_service.py index ca30ca074..fbd193509 100644 --- a/api/db/services/knowledgebase_service.py +++ b/api/db/services/knowledgebase_service.py @@ -391,10 +391,10 @@ class KnowledgebaseService(CommonService): """ # Validate name if not isinstance(name, str): - return get_data_error_result(message="Dataset name must be string.") + return False, get_data_error_result(message="Dataset name must be string.") dataset_name = name.strip() if dataset_name == "": - return get_data_error_result(message="Dataset name can't be empty.") + return False, get_data_error_result(message="Dataset name can't be empty.") if len(dataset_name.encode("utf-8")) > DATASET_NAME_LIMIT: return get_data_error_result(message=f"Dataset name length is {len(dataset_name)} which is larger than {DATASET_NAME_LIMIT}") @@ -409,7 +409,7 @@ class KnowledgebaseService(CommonService): # Verify tenant exists ok, _t = TenantService.get_by_id(tenant_id) if not ok: - return False, "Tenant not found." + return False, get_data_error_result(message="Tenant not found.") # Build payload kb_id = get_uuid() @@ -425,7 +425,7 @@ class KnowledgebaseService(CommonService): # Default parser_config (align with kb_app.create) — do not accept external overrides payload["parser_config"] = get_parser_config(parser_id, kwargs.get("parser_config")) - return payload + return True, payload @classmethod