@@ -59,11 +59,11 @@ def write_context(node_variable: Dict, workflow_variable: Dict, node: INode, wor
5959    _write_context (node_variable , workflow_variable , node , workflow , answer )
6060
6161
62- def  file_id_to_base64 (file_id : str ):
62+ def  file_id_to_base64 (file_id : str ,  video_model ):
6363    file  =  QuerySet (File ).filter (id = file_id ).first ()
6464    file_bytes  =  file .get_bytes ()
65-     base64_video  =  base64 . b64encode (file_bytes ). decode ( "utf-8" )
66-     return  [ base64_video ,  get_video_format ( file . file_name )] 
65+     url  =  video_model . upload_file_and_get_url (file_bytes ,  file . file_name )
66+     return  url 
6767
6868
6969class  BaseVideoUnderstandNode (IVideoUnderstandNode ):
@@ -88,7 +88,8 @@ def execute(self, model_id, system, prompt, dialogue_number, dialogue_type, hist
8888        self .context ['question' ] =  question .content 
8989        # 生成消息列表, 真实的history_message 
9090        message_list  =  self .generate_message_list (video_model , system , prompt ,
91-                                                   self .get_history_message (history_chat_record , dialogue_number ), video )
91+                                                   self .get_history_message (history_chat_record , dialogue_number ,
92+                                                                            video_model ), video )
9293        self .context ['message_list' ] =  message_list 
9394        self .generate_context_video (video )
9495        self .context ['dialogue_type' ] =  dialogue_type 
@@ -140,28 +141,28 @@ def generate_history_human_message_for_details(self, chat_record):
140141                ])
141142        return  HumanMessage (content = chat_record .problem_text )
142143
143-     def  get_history_message (self , history_chat_record , dialogue_number ):
144+     def  get_history_message (self , history_chat_record , dialogue_number ,  video_model ):
144145        start_index  =  len (history_chat_record ) -  dialogue_number 
145146        history_message  =  reduce (lambda  x , y : [* x , * y ], [
146-             [self .generate_history_human_message (history_chat_record [index ]),
147-              self .generate_history_ai_message (history_chat_record [index ])]
147+             [self .generate_history_human_message (history_chat_record [index ],  video_model ),
148+              self .generate_history_ai_message (history_chat_record [index ]),  video_model ]
148149            for  index  in 
149150            range (start_index  if  start_index  >  0  else  0 , len (history_chat_record ))], [])
150151        return  history_message 
151152
152-     def  generate_history_human_message (self , chat_record ):
153+     def  generate_history_human_message (self , chat_record ,  video_model ):
153154
154155        for  data  in  chat_record .details .values ():
155156            if  self .node .id  ==  data ['node_id' ] and  'video_list'  in  data :
156157                video_list  =  data ['video_list' ]
157158                if  len (video_list ) ==  0  or  data ['dialogue_type' ] ==  'WORKFLOW' :
158159                    return  HumanMessage (content = chat_record .problem_text )
159-                 video_base64_list  =  [file_id_to_base64 (video .get ('file_id' )) for  video  in  video_list ]
160+                 video_base64_list  =  [file_id_to_base64 (video .get ('file_id' ),  video_model ) for  video  in  video_list ]
160161                return  HumanMessage (
161162                    content = [
162163                        {'type' : 'text' , 'text' : data ['question' ]},
163164                        * [{'type' : 'video_url' ,
164-                            'video_url' : {'url' : f'data: { base64_video [ 1 ] } ;base64, { base64_video [ 0 ] }  }} for 
165+                            'video_url' : {'url' : f'{ base64_video }  }} for 
165166                          base64_video  in  video_base64_list ]
166167                    ])
167168        return  HumanMessage (content = chat_record .problem_text )
0 commit comments