chore: integrate prompt generation in value conversion

--bug=1056308 --user=刘瑞斌 【应用】函数的自定义类型参数不支持通过变量名引用变量 https://www.tapd.cn/62980211/s/1783859
v3.2
CaptainB 2025-10-11 18:27:21 +08:00
parent 9d9ae437d4
commit c0715c5b17
2 changed files with 14 additions and 8 deletions

View File

@ -93,6 +93,7 @@ def convert_value(name: str, value, _type, is_required, source, node):
return float(value) return float(value)
return value return value
try: try:
value = node.workflow_manage.generate_prompt(value)
if _type == 'int': if _type == 'int':
return int(value) return int(value)
if _type == 'float': if _type == 'float':
@ -136,14 +137,18 @@ class BaseToolLibNodeNode(IToolLibNode):
workspace_id = self.workflow_manage.get_body().get('workspace_id') workspace_id = self.workflow_manage.get_body().get('workspace_id')
tool_lib = QuerySet(Tool).filter(id=tool_lib_id).first() tool_lib = QuerySet(Tool).filter(id=tool_lib_id).first()
valid_function(tool_lib, workspace_id) valid_function(tool_lib, workspace_id)
params = {field.get('name'): convert_value(field.get('name'), field.get('value'), field.get('type'), params = {
field.get('is_required'), field.get('name'): convert_value(
field.get('source'), self) field.get('name'), field.get('value'), field.get('type'),
for field in field.get('is_required'),
[{'value': get_field_value(input_field_list, field.get('name'), field.get('is_required'), field.get('source'), self
), **field} )
for field in for field in [
tool_lib.input_field_list]} {
'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 self.context['params'] = params
# 合并初始化参数 # 合并初始化参数

View File

@ -79,6 +79,7 @@ def convert_value(name: str, value, _type, is_required, source, node):
return float(value) return float(value)
return value return value
try: try:
value = node.workflow_manage.generate_prompt(value)
if _type == 'int': if _type == 'int':
return int(value) return int(value)
if _type == 'float': if _type == 'float':