mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
Fix: create dataset return type inconsistent (#11272)
### What problem does this PR solve? Fix: create dataset return type inconsistent #11167 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
@ -55,6 +55,10 @@ def create():
|
|||||||
**req
|
**req
|
||||||
)
|
)
|
||||||
|
|
||||||
|
code = req.get("code")
|
||||||
|
if code:
|
||||||
|
return get_data_error_result(code=code, message=req.get("message"))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not KnowledgebaseService.save(**req):
|
if not KnowledgebaseService.save(**req):
|
||||||
return get_data_error_result()
|
return get_data_error_result()
|
||||||
|
|||||||
@ -24,9 +24,9 @@ from common.time_utils import current_timestamp, datetime_format
|
|||||||
from api.db.services import duplicate_name
|
from api.db.services import duplicate_name
|
||||||
from api.db.services.user_service import TenantService
|
from api.db.services.user_service import TenantService
|
||||||
from common.misc_utils import get_uuid
|
from common.misc_utils import get_uuid
|
||||||
from common.constants import StatusEnum
|
from common.constants import StatusEnum, RetCode
|
||||||
from api.constants import DATASET_NAME_LIMIT
|
from api.constants import DATASET_NAME_LIMIT
|
||||||
from api.utils.api_utils import get_parser_config, get_data_error_result
|
from api.utils.api_utils import get_parser_config
|
||||||
|
|
||||||
class KnowledgebaseService(CommonService):
|
class KnowledgebaseService(CommonService):
|
||||||
"""Service class for managing knowledge base operations.
|
"""Service class for managing knowledge base operations.
|
||||||
@ -391,12 +391,12 @@ class KnowledgebaseService(CommonService):
|
|||||||
"""
|
"""
|
||||||
# Validate name
|
# Validate name
|
||||||
if not isinstance(name, str):
|
if not isinstance(name, str):
|
||||||
return get_data_error_result(message="Dataset name must be string.")
|
return {"code": RetCode.DATA_ERROR, "message": "Dataset name must be string."}
|
||||||
dataset_name = name.strip()
|
dataset_name = name.strip()
|
||||||
if dataset_name == "":
|
if len(dataset_name) == 0:
|
||||||
return get_data_error_result(message="Dataset name can't be empty.")
|
return {"code": RetCode.DATA_ERROR, "message": "Dataset name can't be empty."}
|
||||||
if len(dataset_name.encode("utf-8")) > DATASET_NAME_LIMIT:
|
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}")
|
return {"code": RetCode.DATA_ERROR, "message": f"Dataset name length is {len(dataset_name)} which is larger than {DATASET_NAME_LIMIT}"}
|
||||||
|
|
||||||
# Deduplicate name within tenant
|
# Deduplicate name within tenant
|
||||||
dataset_name = duplicate_name(
|
dataset_name = duplicate_name(
|
||||||
@ -409,7 +409,7 @@ class KnowledgebaseService(CommonService):
|
|||||||
# Verify tenant exists
|
# Verify tenant exists
|
||||||
ok, _t = TenantService.get_by_id(tenant_id)
|
ok, _t = TenantService.get_by_id(tenant_id)
|
||||||
if not ok:
|
if not ok:
|
||||||
return False, "Tenant not found."
|
return {"code": RetCode.DATA_ERROR, "message": "Tenant does not exist."}
|
||||||
|
|
||||||
# Build payload
|
# Build payload
|
||||||
kb_id = get_uuid()
|
kb_id = get_uuid()
|
||||||
@ -419,10 +419,10 @@ class KnowledgebaseService(CommonService):
|
|||||||
"tenant_id": tenant_id,
|
"tenant_id": tenant_id,
|
||||||
"created_by": tenant_id,
|
"created_by": tenant_id,
|
||||||
"parser_id": (parser_id or "naive"),
|
"parser_id": (parser_id or "naive"),
|
||||||
**kwargs
|
**kwargs # Includes optional fields such as description, language, permission, avatar, parser_config, etc.
|
||||||
}
|
}
|
||||||
|
|
||||||
# Default parser_config (align with kb_app.create) — do not accept external overrides
|
# Update parser_config (always override with validated default/merged config)
|
||||||
payload["parser_config"] = get_parser_config(parser_id, kwargs.get("parser_config"))
|
payload["parser_config"] = get_parser_config(parser_id, kwargs.get("parser_config"))
|
||||||
|
|
||||||
return payload
|
return payload
|
||||||
|
|||||||
@ -104,7 +104,7 @@ def test_invalid_name_dataset(get_auth):
|
|||||||
assert res['code'] == 100
|
assert res['code'] == 100
|
||||||
|
|
||||||
res = create_dataset(get_auth, "")
|
res = create_dataset(get_auth, "")
|
||||||
assert res['code'] == 100
|
assert res['code'] == 102
|
||||||
|
|
||||||
long_string = ""
|
long_string = ""
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ def test_invalid_name_dataset(get_auth):
|
|||||||
long_string += random.choice(string.ascii_letters + string.digits)
|
long_string += random.choice(string.ascii_letters + string.digits)
|
||||||
|
|
||||||
res = create_dataset(get_auth, long_string)
|
res = create_dataset(get_auth, long_string)
|
||||||
assert res['code'] == 100
|
assert res['code'] == 102
|
||||||
print(res)
|
print(res)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user