mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 06:39:06 +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.entities.advanced_prompt_entities import CompletionModelPromptTemplate, MemoryConfig
|
||||
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.entities.node_entities import NodeRunMetadataKey, NodeRunResult
|
||||
from core.workflow.enums import SystemVariableKey
|
||||
@ -320,11 +320,12 @@ class LLMNode(BaseNode[LLMNodeData]):
|
||||
variable_selectors = variable_template_parser.extract_variable_selectors()
|
||||
|
||||
for variable_selector in variable_selectors:
|
||||
variable_value = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
||||
if variable_value is None:
|
||||
variable = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
||||
if variable is None:
|
||||
raise ValueError(f"Variable {variable_selector.variable} not found")
|
||||
|
||||
inputs[variable_selector.variable] = variable_value.to_object()
|
||||
if isinstance(variable, NoneSegment):
|
||||
continue
|
||||
inputs[variable_selector.variable] = variable.to_object()
|
||||
|
||||
memory = node_data.memory
|
||||
if memory and memory.query_prompt_template:
|
||||
@ -332,11 +333,12 @@ class LLMNode(BaseNode[LLMNodeData]):
|
||||
template=memory.query_prompt_template
|
||||
).extract_variable_selectors()
|
||||
for variable_selector in query_variable_selectors:
|
||||
variable_value = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
||||
if variable_value is None:
|
||||
variable = self.graph_runtime_state.variable_pool.get(variable_selector.value_selector)
|
||||
if variable is None:
|
||||
raise ValueError(f"Variable {variable_selector.variable} not found")
|
||||
|
||||
inputs[variable_selector.variable] = variable_value.to_object()
|
||||
if isinstance(variable, NoneSegment):
|
||||
continue
|
||||
inputs[variable_selector.variable] = variable.to_object()
|
||||
|
||||
return inputs
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user