浏览代码

fix: if-else-node handles missing optional file variables (#15693)

tags/1.1.0
Arcaner 7 个月前
父节点
当前提交
12fa517297
没有帐户链接到提交者的电子邮件
共有 1 个文件被更改,包括 7 次插入5 次删除
  1. 7
    5
      api/core/workflow/entities/variable_pool.py

+ 7
- 5
api/core/workflow/entities/variable_pool.py 查看文件

@@ -7,7 +7,7 @@ from pydantic import BaseModel, Field

from core.file import File, FileAttribute, file_manager
from core.variables import Segment, SegmentGroup, Variable
from core.variables.segments import FileSegment
from core.variables.segments import FileSegment, NoneSegment
from factories import variable_factory

from ..constants import CONVERSATION_VARIABLE_NODE_ID, ENVIRONMENT_VARIABLE_NODE_ID, SYSTEM_VARIABLE_NODE_ID
@@ -131,11 +131,13 @@ class VariablePool(BaseModel):
if attr not in {item.value for item in FileAttribute}:
return None
value = self.get(selector)
if not isinstance(value, FileSegment):
if not isinstance(value, (FileSegment, NoneSegment)):
return None
attr = FileAttribute(attr)
attr_value = file_manager.get_attr(file=value.value, attr=attr)
return variable_factory.build_segment(attr_value)
if isinstance(value, FileSegment):
attr = FileAttribute(attr)
attr_value = file_manager.get_attr(file=value.value, attr=attr)
return variable_factory.build_segment(attr_value)
return value

return value


正在加载...
取消
保存