mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
fix: When the reference variable in the workflow is empty, take the value of None (#3814)
This commit is contained in:
parent
319bd37b10
commit
9a626efe35
|
|
@ -73,15 +73,19 @@ def valid_reference_value(_type, value, name):
|
|||
|
||||
|
||||
def convert_value(name: str, value, _type, is_required, source, node):
|
||||
if not is_required and (value is None or (isinstance(value, str) and len(value) == 0)):
|
||||
return None
|
||||
if not is_required and source == 'reference' and (value is None or len(value) == 0):
|
||||
if not is_required and (value is None or ((isinstance(value, str) or isinstance(value, list)) and len(value) == 0)):
|
||||
return None
|
||||
if source == 'reference':
|
||||
value = node.workflow_manage.get_reference_field(
|
||||
value[0],
|
||||
value[1:])
|
||||
|
||||
if value is None:
|
||||
if not is_required:
|
||||
return None
|
||||
else:
|
||||
raise Exception(_(
|
||||
'Field: {name} Type: {_type} is required'
|
||||
).format(name=name, _type=_type))
|
||||
value = valid_reference_value(_type, value, name)
|
||||
if _type == 'int':
|
||||
return int(value)
|
||||
|
|
|
|||
|
|
@ -59,13 +59,19 @@ def valid_reference_value(_type, value, name):
|
|||
|
||||
|
||||
def convert_value(name: str, value, _type, is_required, source, node):
|
||||
if not is_required and (value is None or (isinstance(value, str) and len(value) == 0)):
|
||||
if not is_required and (value is None or ((isinstance(value, str) or isinstance(value, list)) and len(value) == 0)):
|
||||
return None
|
||||
if source == 'reference':
|
||||
value = node.workflow_manage.get_reference_field(
|
||||
value[0],
|
||||
value[1:])
|
||||
|
||||
if value is None:
|
||||
if not is_required:
|
||||
return None
|
||||
else:
|
||||
raise Exception(_(
|
||||
'Field: {name} Type: {_type} is required'
|
||||
).format(name=name, _type=_type))
|
||||
value = valid_reference_value(_type, value, name)
|
||||
if _type == 'int':
|
||||
return int(value)
|
||||
|
|
@ -81,15 +87,17 @@ def convert_value(name: str, value, _type, is_required, source, node):
|
|||
v = json.loads(value)
|
||||
if isinstance(v, dict):
|
||||
return v
|
||||
raise Exception("类型错误")
|
||||
raise Exception(_('type error'))
|
||||
if _type == 'array':
|
||||
v = json.loads(value)
|
||||
if isinstance(v, list):
|
||||
return v
|
||||
raise Exception("类型错误")
|
||||
raise Exception(_('type error'))
|
||||
return value
|
||||
except Exception as e:
|
||||
raise Exception(f'字段:{name}类型:{_type}值:{value}类型错误')
|
||||
raise Exception(
|
||||
_('Field: {name} Type: {_type} Value: {value} Type error').format(name=name, _type=_type,
|
||||
value=value))
|
||||
|
||||
|
||||
class BaseToolNodeNode(IToolNode):
|
||||
|
|
|
|||
|
|
@ -602,7 +602,10 @@ class WorkflowManage:
|
|||
elif node_id == 'chat':
|
||||
return INode.get_field(self.chat_context, fields)
|
||||
else:
|
||||
return self.get_node_by_id(node_id).get_reference_field(fields)
|
||||
node = self.get_node_by_id(node_id)
|
||||
if node:
|
||||
return node.get_reference_field(fields)
|
||||
return None
|
||||
|
||||
def get_workflow_content(self):
|
||||
context = {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
"md-editor-v3": "^5.8.2",
|
||||
"mermaid": "^10.9.0",
|
||||
"moment": "^2.30.1",
|
||||
"nanoid": "^5.1.5",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^3.0.1",
|
||||
"recorder-core": "^1.3.25011100",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { nanoid } from 'nanoid'
|
||||
/**
|
||||
* 数字处理
|
||||
*/
|
||||
|
|
@ -36,7 +37,7 @@ export function isFunction(fn: any) {
|
|||
随机id
|
||||
*/
|
||||
export const randomId = function () {
|
||||
return Math.floor(Math.random() * 10000) + ''
|
||||
return nanoid()
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue