Skip to content

Commit 11b76ca

Browse files
authored
fix: Loop node dialogue log has no data (#5140)
1 parent 4e0c4df commit 11b76ca

1 file changed

Lines changed: 19 additions & 57 deletions

File tree

‎apps/application/flow/workflow_manage.py‎

Lines changed: 19 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)