From c92ad0609245ee3d9b05b4f16ffcfdd8bc1d8d3a Mon Sep 17 00:00:00 2001 From: CaptainB Date: Thu, 27 Feb 2025 10:57:17 +0800 Subject: [PATCH 1/3] refactor: Support the generated images horizontal tiling display MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=1017907 --user=刘瑞斌 【越秀农牧】图片生成节点,生成的图片,希望可以支持横向平铺展示 https://www.tapd.cn/57709429/s/1659636 --- .../image_generate_step_node/impl/base_image_generate_node.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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}, {}) From c433c03fc03473fe84a828642c57e73408329d56 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Thu, 27 Feb 2025 12:07:13 +0800 Subject: [PATCH 2/3] fix: Fix variable assign num not working MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1052497 --user=刘瑞斌 【变量赋值】-将全局变量赋值为num类型,输出时报错 https://www.tapd.cn/57709429/s/1659733 --- .../variable_assign_node/impl/base_variable_assign_node.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 From afaf3d6e26df27093e2aec038cef51040f8bebc7 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:21:47 +0800 Subject: [PATCH 3/3] fix: The workflow cannot function properly after the conversation flow is disconnected (#2428) --- apps/application/flow/workflow_manage.py | 2 ++ apps/common/middleware/gzip.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) 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,