Browse Source

Fix: bugs mentioned by#5760 (#5778)

### What problem does this PR solve?

Fixed the issue of "stop deleting when encountering invalid dataset ID"

#5760

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

---------

Co-authored-by: Kevin Hu <kevinhu.sh@gmail.com>
tags/v0.17.1
kaiyuan Zhang 7 months ago
parent
commit
50c510d16b
1 changed files with 17 additions and 5 deletions
  1. 17
    5
      api/apps/sdk/dataset.py

+ 17
- 5
api/apps/sdk/dataset.py View File

@@ -228,6 +228,8 @@ def delete(tenant_id):
schema:
type: object
"""
errors = []
success_count = 0
req = request.json
if not req:
ids = None
@@ -243,12 +245,12 @@ def delete(tenant_id):
for id in id_list:
kbs = KnowledgebaseService.query(id=id, tenant_id=tenant_id)
if not kbs:
return get_error_data_result(message=f"You don't own the dataset {id}")
errors.append(f"You don't own the dataset {id}")
continue
for doc in DocumentService.query(kb_id=id):
if not DocumentService.remove_document(doc, tenant_id):
return get_error_data_result(
message="Remove document error.(Database error)"
)
errors.append(f"Remove document error for dataset {id}")
continue
f2d = File2DocumentService.get_by_document_id(doc.id)
FileService.filter_delete(
[
@@ -260,7 +262,17 @@ def delete(tenant_id):
FileService.filter_delete(
[File.source_type == FileSource.KNOWLEDGEBASE, File.type == "folder", File.name == kbs[0].name])
if not KnowledgebaseService.delete_by_id(id):
return get_error_data_result(message="Delete dataset error.(Database error)")
errors.append(f"Delete dataset error for {id}")
continue
success_count += 1
if errors:
if success_count > 0:
return get_result(
data={"success_count": success_count, "errors": errors},
message=f"Partially deleted {success_count} datasets with {len(errors)} errors"
)
else:
return get_error_data_result(message="; ".join(errors))
return get_result(code=settings.RetCode.SUCCESS)



Loading…
Cancel
Save