mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-31 18:22:49 +00:00
refactor: enhance document and knowledge deletion logic to remove associated files
This commit is contained in:
parent
19b7ae24c9
commit
580adc5a88
|
|
@ -665,6 +665,9 @@ class DocumentSerializers(serializers.Serializer):
|
|||
def delete(self):
|
||||
document_id = self.data.get("document_id")
|
||||
QuerySet(model=Document).filter(id=document_id).delete()
|
||||
source_file_ids = [doc['meta'].get('source_file_id') for doc in
|
||||
Document.objects.filter(id__=document_id).values("meta")]
|
||||
QuerySet(File).filter(id__in=source_file_ids).delete()
|
||||
# 删除段落
|
||||
QuerySet(model=Paragraph).filter(document_id=document_id).delete()
|
||||
# 删除问题
|
||||
|
|
@ -1189,6 +1192,9 @@ class DocumentSerializers(serializers.Serializer):
|
|||
BatchSerializer(data=instance).is_valid(model=Document, raise_exception=True)
|
||||
self.is_valid(raise_exception=True)
|
||||
document_id_list = instance.get("id_list")
|
||||
source_file_ids = [doc['meta'].get('source_file_id') for doc in
|
||||
Document.objects.filter(id__in=document_id_list).values("meta")]
|
||||
QuerySet(File).filter(id__in=source_file_ids).delete()
|
||||
QuerySet(Document).filter(id__in=document_id_list).delete()
|
||||
QuerySet(Paragraph).filter(document_id__in=document_id_list).delete()
|
||||
delete_problems_and_mappings(document_id_list)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ from common.utils.fork import Fork, ChildLink
|
|||
from common.utils.logger import maxkb_logger
|
||||
from common.utils.split_model import get_split_model
|
||||
from knowledge.models import Knowledge, KnowledgeScope, KnowledgeType, Document, Paragraph, Problem, \
|
||||
ProblemParagraphMapping, TaskType, State, SearchMode, KnowledgeFolder
|
||||
ProblemParagraphMapping, TaskType, State, SearchMode, KnowledgeFolder, File
|
||||
from knowledge.serializers.common import ProblemParagraphManage, get_embedding_model_id_by_knowledge_id, MetaSerializer, \
|
||||
GenerateRelatedSerializer, get_embedding_model_by_knowledge_id, list_paragraph, write_image, zip_dir
|
||||
from knowledge.serializers.document import DocumentSerializers
|
||||
|
|
@ -417,6 +417,9 @@ class KnowledgeSerializer(serializers.Serializer):
|
|||
QuerySet(WorkspaceUserResourcePermission).filter(target=knowledge.id).delete()
|
||||
QuerySet(ApplicationKnowledgeMapping).filter(knowledge_id=knowledge.id).delete()
|
||||
knowledge.delete()
|
||||
File.objects.filter(
|
||||
source_id=knowledge.id,
|
||||
).delete()
|
||||
delete_embedding_by_knowledge(self.data.get('knowledge_id'))
|
||||
return True
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue