mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-14 10:55:53 +08:00
fix(workflow): handle NoneSegments in variable extraction (#9585)
This commit is contained in:
parent
c063617553
commit
2e657b7b12
@ -22,7 +22,7 @@ from core.model_runtime.utils.encoders import jsonable_encoder
|
|||||||
from core.prompt.advanced_prompt_transform import AdvancedPromptTransform
|
from core.prompt.advanced_prompt_transform import AdvancedPromptTransform
|
||||||
from core.prompt.entities.advanced_prompt_entities import CompletionModelPromptTemplate, MemoryConfig
|
from core.prompt.entities.advanced_prompt_entities import CompletionModelPromptTemplate, MemoryConfig
|
||||||
from core.prompt.utils.prompt_message_util import PromptMessageUtil
|
from core.prompt.utils.prompt_message_util import PromptMessageUtil
|
||||||
from core.variables import ArrayAnySegment, ArrayFileSegment, FileSegment
|
from core.variables import ArrayAnySegment, ArrayFileSegment, FileSegment, NoneSegment
|
||||||
from core.workflow.constants import SYSTEM_VARIABLE_NODE_ID
|
from core.workflow.constants import SYSTEM_VARIABLE_NODE_ID
|
||||||
from core.workflow.entities.node_entities import NodeRunMetadataKey, NodeRunResult
|
from core.workflow.entities.node_entities import NodeRunMetadataKey, NodeRunResult
|
||||||
from core.workflow.enums import SystemVariableKey
|
from core.workflow.enums import SystemVariableKey
|
||||||
@ -320,11 +320,12 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|||||||
variable_selectors = variable_template_parser.extract_variable_selectors()
|
variable_selectors = variable_template_parser.extract_variable_selectors()
|
||||||
|
|
||||||
for variable_selector in variable_selectors:
|
for variable_selector in variable_selectors:
|
||||||
variable_value = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
variable = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
||||||
if variable_value is None:
|
if variable is None:
|
||||||
raise ValueError(f"Variable {variable_selector.variable} not found")
|
raise ValueError(f"Variable {variable_selector.variable} not found")
|
||||||
|
if isinstance(variable, NoneSegment):
|
||||||
inputs[variable_selector.variable] = variable_value.to_object()
|
continue
|
||||||
|
inputs[variable_selector.variable] = variable.to_object()
|
||||||
|
|
||||||
memory = node_data.memory
|
memory = node_data.memory
|
||||||
if memory and memory.query_prompt_template:
|
if memory and memory.query_prompt_template:
|
||||||
@ -332,11 +333,12 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|||||||
template=memory.query_prompt_template
|
template=memory.query_prompt_template
|
||||||
).extract_variable_selectors()
|
).extract_variable_selectors()
|
||||||
for variable_selector in query_variable_selectors:
|
for variable_selector in query_variable_selectors:
|
||||||
variable_value = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
variable = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
||||||
if variable_value is None:
|
if variable is None:
|
||||||
raise ValueError(f"Variable {variable_selector.variable} not found")
|
raise ValueError(f"Variable {variable_selector.variable} not found")
|
||||||
|
if isinstance(variable, NoneSegment):
|
||||||
inputs[variable_selector.variable] = variable_value.to_object()
|
continue
|
||||||
|
inputs[variable_selector.variable] = variable.to_object()
|
||||||
|
|
||||||
return inputs
|
return inputs
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user