@@ -234,62 +234,25 @@ def run_block(self, language='zh'):
234234 非流式响应
235235 @return: 结果
236236 """
237- try :
238- self .run_chain_async (None , None , language )
239- while self .is_run ():
240- pass
241- details = self .get_runtime_details ()
242- message_tokens = sum ([row .get ('message_tokens' ) for row in details .values () if
243- 'message_tokens' in row and row .get ('message_tokens' ) is not None ])
244- answer_tokens = sum ([row .get ('answer_tokens' ) for row in details .values () if
245- 'answer_tokens' in row and row .get ('answer_tokens' ) is not None ])
246- answer_text_list = self .get_answer_text_list ()
247- answer_text = '\n \n ' .join (
248- '\n \n ' .join ([a .get ('content' ) for a in answer ]) for answer in
249- answer_text_list )
250- answer_list = reduce (lambda pre , _n : [* pre , * _n ], answer_text_list , [])
251- self .work_flow_post_handler .handler (self )
252-
253- res = self .base_to_response .to_block_response (self .params ['chat_id' ],
254- self .params ['chat_record_id' ], answer_text , True
255- , message_tokens , answer_tokens ,
256- _status = status .HTTP_200_OK if self .status == 200 else status .HTTP_500_INTERNAL_SERVER_ERROR ,
257- other_params = {'answer_list' : answer_list })
258- finally :
259- self ._cleanup ()
260- return res
261-
262- def _cleanup (self ):
263- """清理所有对象引用"""
264- # 清理列表
265- self .future_list .clear ()
266- self .field_list .clear ()
267- self .global_field_list .clear ()
268- self .chat_field_list .clear ()
269- self .image_list .clear ()
270- self .video_list .clear ()
271- self .document_list .clear ()
272- self .audio_list .clear ()
273- self .other_list .clear ()
274- if hasattr (self , 'node_context' ):
275- self .node_context .clear ()
276-
277- # 清理字典
278- self .context .clear ()
279- self .chat_context .clear ()
280- self .form_data .clear ()
281-
282- # 清理对象引用
283- self .node_chunk_manage = None
284- self .work_flow_post_handler = None
285- self .flow = None
286- self .start_node = None
287- self .current_node = None
288- self .current_result = None
289- self .chat_record = None
290- self .base_to_response = None
291- self .params = None
292- self .lock = None
237+ self .run_chain_async (None , None , language )
238+ while self .is_run ():
239+ pass
240+ details = self .get_runtime_details ()
241+ message_tokens = sum ([row .get ('message_tokens' ) for row in details .values () if
242+ 'message_tokens' in row and row .get ('message_tokens' ) is not None ])
243+ answer_tokens = sum ([row .get ('answer_tokens' ) for row in details .values () if
244+ 'answer_tokens' in row and row .get ('answer_tokens' ) is not None ])
245+ answer_text_list = self .get_answer_text_list ()
246+ answer_text = '\n \n ' .join (
247+ '\n \n ' .join ([a .get ('content' ) for a in answer ]) for answer in
248+ answer_text_list )
249+ answer_list = reduce (lambda pre , _n : [* pre , * _n ], answer_text_list , [])
250+ self .work_flow_post_handler .handler (self )
251+ return self .base_to_response .to_block_response (self .params ['chat_id' ],
252+ self .params ['chat_record_id' ], answer_text , True
253+ , message_tokens , answer_tokens ,
254+ _status = status .HTTP_200_OK if self .status == 200 else status .HTTP_500_INTERNAL_SERVER_ERROR ,
255+ other_params = {'answer_list' : answer_list })
293256
294257 def run_stream (self , current_node , node_result_future , language = 'zh' ):
295258 """
@@ -344,7 +307,6 @@ def await_result(self):
344307 '' ,
345308 [],
346309 '' , True , message_tokens , answer_tokens , {})
347- self ._cleanup ()
348310
349311 def run_chain_async (self , current_node , node_result_future , language = 'zh' ):
350312 future = executor .submit (self .run_chain_manage , current_node , node_result_future , language )
0 commit comments