mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-14 17:25:53 +08:00
fix: if-else-node handles missing optional file variables (#15693)
This commit is contained in:
parent
36ae0e5476
commit
12fa517297
@ -7,7 +7,7 @@ from pydantic import BaseModel, Field
|
|||||||
|
|
||||||
from core.file import File, FileAttribute, file_manager
|
from core.file import File, FileAttribute, file_manager
|
||||||
from core.variables import Segment, SegmentGroup, Variable
|
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 factories import variable_factory
|
||||||
|
|
||||||
from ..constants import CONVERSATION_VARIABLE_NODE_ID, ENVIRONMENT_VARIABLE_NODE_ID, SYSTEM_VARIABLE_NODE_ID
|
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}:
|
if attr not in {item.value for item in FileAttribute}:
|
||||||
return None
|
return None
|
||||||
value = self.get(selector)
|
value = self.get(selector)
|
||||||
if not isinstance(value, FileSegment):
|
if not isinstance(value, (FileSegment, NoneSegment)):
|
||||||
return None
|
return None
|
||||||
|
if isinstance(value, FileSegment):
|
||||||
attr = FileAttribute(attr)
|
attr = FileAttribute(attr)
|
||||||
attr_value = file_manager.get_attr(file=value.value, attr=attr)
|
attr_value = file_manager.get_attr(file=value.value, attr=attr)
|
||||||
return variable_factory.build_segment(attr_value)
|
return variable_factory.build_segment(attr_value)
|
||||||
|
return value
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user