From c0715c5b17c368db946b6c2e2d77930a07993475 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Sat, 11 Oct 2025 18:27:21 +0800 Subject: [PATCH] chore: integrate prompt generation in value conversion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1056308 --user=刘瑞斌 【应用】函数的自定义类型参数不支持通过变量名引用变量 https://www.tapd.cn/62980211/s/1783859 --- .../tool_lib_node/impl/base_tool_lib_node.py | 21 ++++++++++++------- .../tool_node/impl/base_tool_node.py | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/apps/application/flow/step_node/tool_lib_node/impl/base_tool_lib_node.py b/apps/application/flow/step_node/tool_lib_node/impl/base_tool_lib_node.py index 1f863cdcb..15b4ab3ca 100644 --- a/apps/application/flow/step_node/tool_lib_node/impl/base_tool_lib_node.py +++ b/apps/application/flow/step_node/tool_lib_node/impl/base_tool_lib_node.py @@ -93,6 +93,7 @@ def convert_value(name: str, value, _type, is_required, source, node): return float(value) return value try: + value = node.workflow_manage.generate_prompt(value) if _type == 'int': return int(value) if _type == 'float': @@ -136,14 +137,18 @@ class BaseToolLibNodeNode(IToolLibNode): workspace_id = self.workflow_manage.get_body().get('workspace_id') tool_lib = QuerySet(Tool).filter(id=tool_lib_id).first() valid_function(tool_lib, workspace_id) - params = {field.get('name'): convert_value(field.get('name'), field.get('value'), field.get('type'), - field.get('is_required'), - field.get('source'), self) - for field in - [{'value': get_field_value(input_field_list, field.get('name'), field.get('is_required'), - ), **field} - for field in - tool_lib.input_field_list]} + params = { + field.get('name'): convert_value( + field.get('name'), field.get('value'), field.get('type'), + field.get('is_required'), + field.get('source'), self + ) + for field in [ + { + 'value': get_field_value(input_field_list, field.get('name'), field.get('is_required'), ), **field + } for field in tool_lib.input_field_list + ] + } self.context['params'] = params # 合并初始化参数 diff --git a/apps/application/flow/step_node/tool_node/impl/base_tool_node.py b/apps/application/flow/step_node/tool_node/impl/base_tool_node.py index 747e184ac..6090b6dd1 100644 --- a/apps/application/flow/step_node/tool_node/impl/base_tool_node.py +++ b/apps/application/flow/step_node/tool_node/impl/base_tool_node.py @@ -79,6 +79,7 @@ def convert_value(name: str, value, _type, is_required, source, node): return float(value) return value try: + value = node.workflow_manage.generate_prompt(value) if _type == 'int': return int(value) if _type == 'float':