Skip to content

Commit 9c42965

Browse files
committed
refactor: streamline image handling by updating application and knowledge ID management
1 parent b121d95 commit 9c42965

File tree

2 files changed

+10
-20
lines changed

2 files changed

+10
-20
lines changed

apps/application/flow/step_node/document_extract_node/impl/base_document_extract_node.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,28 +51,31 @@ def execute(self, document, chat_id=None, **kwargs):
5151
return NodeResult({'content': '', 'document_list': []}, {})
5252

5353
# 安全获取 application
54-
application = None
54+
application_id = None
5555
if (self.workflow_manage and
5656
self.workflow_manage.work_flow_post_handler and
5757
self.workflow_manage.work_flow_post_handler.chat_info):
58-
application = self.workflow_manage.work_flow_post_handler.chat_info.application
58+
application_id = self.workflow_manage.work_flow_post_handler.chat_info.application.id
59+
knowledge_id = self.workflow_params.get('knowledge_id')
5960

6061
# doc文件中的图片保存
6162
def save_image(image_list):
6263
for image in image_list:
6364
meta = {
64-
'debug': False if (application and application.id) else True,
65+
'debug': False if (application_id or knowledge_id) else True,
6566
'chat_id': chat_id,
66-
'application_id': str(application.id) if (application and application.id) else None,
67+
'application_id': str(application_id) if application_id else None,
68+
'knowledge_id': str(knowledge_id) if knowledge_id else None,
6769
'file_id': str(image.id)
6870
}
6971
file_bytes = image.meta.pop('content')
7072
f = bytes_to_uploaded_file(file_bytes, image.file_name)
7173
FileSerializer(data={
7274
'file': f,
7375
'meta': meta,
74-
'source_id': meta['application_id'],
75-
'source_type': FileSourceType.APPLICATION.value
76+
'source_id': meta['application_id'] if meta['application_id'] else meta['knowledge_id'],
77+
'source_type': FileSourceType.APPLICATION.value if meta[
78+
'application_id'] else FileSourceType.KNOWLEDGE.value
7679
}).upload()
7780

7881
document_list = []

apps/application/flow/step_node/document_split_node/impl/base_document_split_node.py

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@
44
from typing import List
55

66
from django.core.files.uploadedfile import InMemoryUploadedFile
7-
from django.db.models import QuerySet
87

98
from application.flow.i_step_node import NodeResult
109
from application.flow.step_node.document_split_node.i_document_split_node import IDocumentSplitNode
11-
from knowledge.models import File, FileSourceType
1210
from knowledge.serializers.document import default_split_handle, FileBufferHandle
1311

1412

@@ -73,18 +71,7 @@ def execute(self, document_list, knowledge_id, split_strategy, paragraph_title_r
7371
return NodeResult({'paragraph_list': paragraph_list}, {})
7472

7573
def _save_image(self, image_list):
76-
if image_list is not None and len(image_list) > 0:
77-
exist_image_list = [str(i.get('id')) for i in
78-
QuerySet(File).filter(id__in=[i.id for i in image_list]).values('id')]
79-
save_image_list = [image for image in image_list if not exist_image_list.__contains__(str(image.id))]
80-
save_image_list = list({img.id: img for img in save_image_list}.values())
81-
# save image
82-
for file in save_image_list:
83-
file_bytes = file.meta.pop('content')
84-
file.meta['knowledge_id'] = self.context.get('knowledge_id')
85-
file.source_type = FileSourceType.KNOWLEDGE
86-
file.source_id = self.context.get('knowledge_id')
87-
file.save(file_bytes)
74+
pass
8875

8976
def _process_split_result(
9077
self, item, knowledge_id, source_file_id, file_name,

0 commit comments

Comments
 (0)