mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 09:43:10 +00:00
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.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 oss.serializers.file import FileSerializer
|
||||
|
||||
|
|
@ -62,7 +62,12 @@ class BaseDocumentExtractNode(IDocumentExtractNode):
|
|||
'file_id': str(image.id)
|
||||
}
|
||||
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:
|
||||
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.step_node.image_generate_step_node.i_image_generate_node import IImageGenerateNode
|
||||
from common.utils.common import bytes_to_uploaded_file
|
||||
from knowledge.models import FileSourceType
|
||||
from oss.serializers.file import FileSerializer
|
||||
from models_provider.tools import get_model_instance_by_model_workspace_id
|
||||
|
||||
|
|
@ -45,7 +46,12 @@ class BaseImageGenerateNode(IImageGenerateNode):
|
|||
'chat_id': chat_id,
|
||||
'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)
|
||||
self.context['image_list'] = [{'file_id': path.split('/')[-1], 'url': path} 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.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 oss.serializers.file import FileSerializer
|
||||
|
||||
|
|
@ -55,7 +56,12 @@ class BaseTextToSpeechNode(ITextToSpeechNode):
|
|||
'chat_id': chat_id,
|
||||
'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_label = f'<audio src="{file_url}" controls style = "width: 300px; height: 43px"></audio>'
|
||||
file_id = file_url.split('/')[-1]
|
||||
|
|
|
|||
Loading…
Reference in New Issue