feat: enhance file upload with source_id and source_type metadata
This commit is contained in:
parent
32f9becb7c
commit
1639d4b31c
@ -7,7 +7,7 @@ from django.db.models import QuerySet
|
|||||||
|
|
||||||
from application.flow.i_step_node import NodeResult
|
from application.flow.i_step_node import NodeResult
|
||||||
from application.flow.step_node.document_extract_node.i_document_extract_node import IDocumentExtractNode
|
from application.flow.step_node.document_extract_node.i_document_extract_node import IDocumentExtractNode
|
||||||
from knowledge.models import File
|
from knowledge.models import File, FileSourceType
|
||||||
from knowledge.serializers.document import split_handles, parse_table_handle_list, FileBufferHandle
|
from knowledge.serializers.document import split_handles, parse_table_handle_list, FileBufferHandle
|
||||||
from oss.serializers.file import FileSerializer
|
from oss.serializers.file import FileSerializer
|
||||||
|
|
||||||
@ -62,7 +62,12 @@ class BaseDocumentExtractNode(IDocumentExtractNode):
|
|||||||
'file_id': str(image.id)
|
'file_id': str(image.id)
|
||||||
}
|
}
|
||||||
file = bytes_to_uploaded_file(image.image, image.image_name)
|
file = bytes_to_uploaded_file(image.image, image.image_name)
|
||||||
FileSerializer(data={'file': file, 'meta': meta}).upload()
|
FileSerializer(data={
|
||||||
|
'file': file,
|
||||||
|
'meta': meta,
|
||||||
|
'source_id': meta['application_id'],
|
||||||
|
'source_type': FileSourceType.APPLICATION.value
|
||||||
|
}).upload()
|
||||||
|
|
||||||
for doc in document:
|
for doc in document:
|
||||||
file = QuerySet(File).filter(id=doc['file_id']).first()
|
file = QuerySet(File).filter(id=doc['file_id']).first()
|
||||||
|
|||||||
@ -8,6 +8,7 @@ from langchain_core.messages import BaseMessage, HumanMessage, AIMessage
|
|||||||
from application.flow.i_step_node import NodeResult
|
from application.flow.i_step_node import NodeResult
|
||||||
from application.flow.step_node.image_generate_step_node.i_image_generate_node import IImageGenerateNode
|
from application.flow.step_node.image_generate_step_node.i_image_generate_node import IImageGenerateNode
|
||||||
from common.utils.common import bytes_to_uploaded_file
|
from common.utils.common import bytes_to_uploaded_file
|
||||||
|
from knowledge.models import FileSourceType
|
||||||
from oss.serializers.file import FileSerializer
|
from oss.serializers.file import FileSerializer
|
||||||
from models_provider.tools import get_model_instance_by_model_workspace_id
|
from models_provider.tools import get_model_instance_by_model_workspace_id
|
||||||
|
|
||||||
@ -45,7 +46,12 @@ class BaseImageGenerateNode(IImageGenerateNode):
|
|||||||
'chat_id': chat_id,
|
'chat_id': chat_id,
|
||||||
'application_id': str(application.id) if application.id else None,
|
'application_id': str(application.id) if application.id else None,
|
||||||
}
|
}
|
||||||
file_url = FileSerializer(data={'file': file, 'meta': meta}).upload()
|
file_url = FileSerializer(data={
|
||||||
|
'file': file,
|
||||||
|
'meta': meta,
|
||||||
|
'source_id': meta['application_id'],
|
||||||
|
'source_type': FileSourceType.APPLICATION.value
|
||||||
|
}).upload()
|
||||||
file_urls.append(file_url)
|
file_urls.append(file_url)
|
||||||
self.context['image_list'] = [{'file_id': path.split('/')[-1], 'url': path} for path in file_urls]
|
self.context['image_list'] = [{'file_id': path.split('/')[-1], 'url': path} for path in file_urls]
|
||||||
answer = ' '.join([f"" for path in file_urls])
|
answer = ' '.join([f"" for path in file_urls])
|
||||||
|
|||||||
@ -6,6 +6,7 @@ from django.core.files.uploadedfile import InMemoryUploadedFile
|
|||||||
|
|
||||||
from application.flow.i_step_node import NodeResult
|
from application.flow.i_step_node import NodeResult
|
||||||
from application.flow.step_node.text_to_speech_step_node.i_text_to_speech_node import ITextToSpeechNode
|
from application.flow.step_node.text_to_speech_step_node.i_text_to_speech_node import ITextToSpeechNode
|
||||||
|
from knowledge.models import FileSourceType
|
||||||
from models_provider.tools import get_model_instance_by_model_workspace_id
|
from models_provider.tools import get_model_instance_by_model_workspace_id
|
||||||
from oss.serializers.file import FileSerializer
|
from oss.serializers.file import FileSerializer
|
||||||
|
|
||||||
@ -55,7 +56,12 @@ class BaseTextToSpeechNode(ITextToSpeechNode):
|
|||||||
'chat_id': chat_id,
|
'chat_id': chat_id,
|
||||||
'application_id': str(application.id) if application.id else None,
|
'application_id': str(application.id) if application.id else None,
|
||||||
}
|
}
|
||||||
file_url = FileSerializer(data={'file': file, 'meta': meta}).upload()
|
file_url = FileSerializer(data={
|
||||||
|
'file': file,
|
||||||
|
'meta': meta,
|
||||||
|
'source_id': meta['application_id'],
|
||||||
|
'source_type': FileSourceType.APPLICATION.value
|
||||||
|
}).upload()
|
||||||
# 拼接一个audio标签的src属性
|
# 拼接一个audio标签的src属性
|
||||||
audio_label = f'<audio src="{file_url}" controls style = "width: 300px; height: 43px"></audio>'
|
audio_label = f'<audio src="{file_url}" controls style = "width: 300px; height: 43px"></audio>'
|
||||||
file_id = file_url.split('/')[-1]
|
file_id = file_url.split('/')[-1]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user