diff --git a/apps/application/flow/step_node/image_generate_step_node/impl/base_image_generate_node.py b/apps/application/flow/step_node/image_generate_step_node/impl/base_image_generate_node.py index b34965021..d5cc2c5a2 100644 --- a/apps/application/flow/step_node/image_generate_step_node/impl/base_image_generate_node.py +++ b/apps/application/flow/step_node/image_generate_step_node/impl/base_image_generate_node.py @@ -47,7 +47,7 @@ class BaseImageGenerateNode(IImageGenerateNode): file_url = FileSerializer(data={'file': file, 'meta': meta}).upload() file_urls.append(file_url) self.context['image_list'] = [{'file_id': path.split('/')[-1], 'url': path} for path in file_urls] - answer = '\n'.join([f"![Image]({path})" for path in file_urls]) + answer = ' '.join([f"![Image]({path})" for path in file_urls]) return NodeResult({'answer': answer, 'chat_model': tti_model, 'message_list': message_list, 'image': [{'file_id': path.split('/')[-1], 'url': path} for path in file_urls], 'history_message': history_message, 'question': question}, {}) diff --git a/apps/application/flow/step_node/variable_assign_node/impl/base_variable_assign_node.py b/apps/application/flow/step_node/variable_assign_node/impl/base_variable_assign_node.py index 8200bd2e1..ce2906e62 100644 --- a/apps/application/flow/step_node/variable_assign_node/impl/base_variable_assign_node.py +++ b/apps/application/flow/step_node/variable_assign_node/impl/base_variable_assign_node.py @@ -30,11 +30,15 @@ class BaseVariableAssignNode(IVariableAssignNode): val = json.loads(variable['value']) self.workflow_manage.context[variable['fields'][1]] = val result['output_value'] = variable['value'] = val - else: + elif variable['type'] == 'string': # 变量解析 例如:{{global.xxx}} val = self.workflow_manage.generate_prompt(variable['value']) self.workflow_manage.context[variable['fields'][1]] = val result['output_value'] = val + else: + val = variable['value'] + self.workflow_manage.context[variable['fields'][1]] = val + result['output_value'] = val else: reference = self.get_reference_content(variable['reference']) self.workflow_manage.context[variable['fields'][1]] = reference diff --git a/apps/application/flow/workflow_manage.py b/apps/application/flow/workflow_manage.py index a0d491a84..d6bb43bf6 100644 --- a/apps/application/flow/workflow_manage.py +++ b/apps/application/flow/workflow_manage.py @@ -382,6 +382,8 @@ class WorkflowManage: break yield chunk finally: + while self.is_run(): + pass details = self.get_runtime_details() message_tokens = sum([row.get('message_tokens') for row in details.values() if 'message_tokens' in row and row.get('message_tokens') is not None]) diff --git a/apps/common/middleware/gzip.py b/apps/common/middleware/gzip.py index 229ec09b3..92c7cea38 100644 --- a/apps/common/middleware/gzip.py +++ b/apps/common/middleware/gzip.py @@ -44,10 +44,10 @@ class GZipMiddleware(MiddlewareMixin): if response.is_async: # pull to lexical scope to capture fixed reference in case # streaming_content is set again later. - orignal_iterator = response.streaming_content + original_iterator = response.streaming_content async def gzip_wrapper(): - async for chunk in orignal_iterator: + async for chunk in original_iterator: yield compress_string( chunk, max_random_bytes=self.max_random_bytes,