mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-27 12:12:57 +00:00
feat: add support for video list in application node execution and validation
This commit is contained in:
parent
97ae4e012b
commit
34be8acb80
|
|
@ -19,6 +19,7 @@ class ApplicationNodeSerializer(serializers.Serializer):
|
|||
image_list = serializers.ListField(required=False, label=_("picture"))
|
||||
document_list = serializers.ListField(required=False, label=_("document"))
|
||||
audio_list = serializers.ListField(required=False, label=_("Audio"))
|
||||
video_list = serializers.ListField(required=False, label=_("Video"))
|
||||
child_node = serializers.DictField(required=False, allow_null=True,
|
||||
label=_("Child Nodes"))
|
||||
node_data = serializers.DictField(required=False, allow_null=True, label=_("Form Data"))
|
||||
|
|
@ -76,12 +77,24 @@ class IApplicationNode(INode):
|
|||
if 'file_id' not in audio:
|
||||
raise ValueError(
|
||||
_("Parameter value error: The uploaded audio lacks file_id, and the audio upload fails."))
|
||||
app_video_list = self.node_params_serializer.data.get('video_list', [])
|
||||
if app_video_list and len(app_video_list) > 0:
|
||||
app_video_list = self.workflow_manage.get_reference_field(
|
||||
app_video_list[0],
|
||||
app_video_list[1:]
|
||||
)
|
||||
for video in app_video_list:
|
||||
if 'file_id' not in video:
|
||||
raise ValueError(
|
||||
_("Parameter value error: The uploaded video lacks file_id, and the video upload fails."))
|
||||
return self.execute(**{**self.flow_params_serializer.data, **self.node_params_serializer.data},
|
||||
app_document_list=app_document_list, app_image_list=app_image_list,
|
||||
app_audio_list=app_audio_list,
|
||||
app_video_list=app_video_list,
|
||||
message=str(question), **kwargs)
|
||||
|
||||
def execute(self, application_id, message, chat_id, chat_record_id, stream, re_chat, client_id, client_type,
|
||||
app_document_list=None, app_image_list=None, app_audio_list=None, child_node=None, node_data=None,
|
||||
app_document_list=None, app_image_list=None, app_audio_list=None, app_video_list=None, child_node=None,
|
||||
node_data=None,
|
||||
**kwargs) -> NodeResult:
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -182,7 +182,8 @@ class BaseApplicationNode(IApplicationNode):
|
|||
def execute(self, application_id, message, chat_id, chat_record_id, stream, re_chat,
|
||||
chat_user_id,
|
||||
chat_user_type,
|
||||
app_document_list=None, app_image_list=None, app_audio_list=None, child_node=None, node_data=None,
|
||||
app_document_list=None, app_image_list=None, app_audio_list=None, app_video_list=None, child_node=None,
|
||||
node_data=None,
|
||||
**kwargs) -> NodeResult:
|
||||
from chat.serializers.chat import ChatSerializers
|
||||
if application_id == self.workflow_manage.get_body().get('application_id'):
|
||||
|
|
@ -202,6 +203,8 @@ class BaseApplicationNode(IApplicationNode):
|
|||
app_image_list = []
|
||||
if app_audio_list is None:
|
||||
app_audio_list = []
|
||||
if app_video_list is None:
|
||||
app_video_list = []
|
||||
runtime_node_id = None
|
||||
record_id = None
|
||||
child_node_value = None
|
||||
|
|
@ -224,6 +227,7 @@ class BaseApplicationNode(IApplicationNode):
|
|||
'document_list': app_document_list,
|
||||
'image_list': app_image_list,
|
||||
'audio_list': app_audio_list,
|
||||
'video_list': app_video_list,
|
||||
'runtime_node_id': runtime_node_id,
|
||||
'chat_record_id': record_id,
|
||||
'child_node': child_node_value,
|
||||
|
|
@ -281,5 +285,6 @@ class BaseApplicationNode(IApplicationNode):
|
|||
'document_list': self.workflow_manage.document_list,
|
||||
'image_list': self.workflow_manage.image_list,
|
||||
'audio_list': self.workflow_manage.audio_list,
|
||||
'video_list': self.workflow_manage.video_list,
|
||||
'application_node_dict': self.context.get('application_node_dict')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ You are a master of problem optimization, adept at accurately inferring user int
|
|||
label: 'Vision Model',
|
||||
requiredMessage: 'Please select a vision model',
|
||||
},
|
||||
image: {
|
||||
video: {
|
||||
label: 'Select Video',
|
||||
requiredMessage: 'Please select a video',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ export default {
|
|||
label: '视觉模型',
|
||||
requiredMessage: '请选择视觉模型',
|
||||
},
|
||||
image: {
|
||||
video: {
|
||||
label: '选择视频',
|
||||
requiredMessage: '请选择视频',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ export default {
|
|||
label: '视觉模型',
|
||||
requiredMessage: '请选择视觉模型',
|
||||
},
|
||||
image: {
|
||||
video: {
|
||||
label: '选择视频',
|
||||
requiredMessage: '请选择视频',
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue