fix(workflow): fix message merging in parallel states and ensure LLM node parameter validation errors are properly thrown

This commit is contained in:
Eternity
2026-01-19 15:11:57 +08:00
parent 49f6f27ffc
commit 6ba4b9e7bd
2 changed files with 3 additions and 2 deletions

View File

@@ -25,7 +25,7 @@ class WorkflowState(TypedDict):
The state object passed between nodes in a workflow, containing messages, variables, node outputs, etc. The state object passed between nodes in a workflow, containing messages, variables, node outputs, etc.
""" """
# List of messages (append mode) # List of messages (append mode)
messages: list[dict[str, str]] messages: Annotated[list[dict[str, str]], lambda x, y: y]
# Set of loop node IDs, used for assigning values in loop nodes # Set of loop node IDs, used for assigning values in loop nodes
cycle_nodes: list cycle_nodes: list

View File

@@ -85,6 +85,7 @@ class LLMNode(BaseNode):
""" """
# 1. 处理消息格式(优先使用 messages # 1. 处理消息格式(优先使用 messages
self.typed_config = LLMNodeConfig(**self.config)
messages_config = self.typed_config.messages messages_config = self.typed_config.messages
if messages_config: if messages_config:
@@ -167,7 +168,7 @@ class LLMNode(BaseNode):
Returns: Returns:
LLM 响应消息 LLM 响应消息
""" """
self.typed_config = LLMNodeConfig(**self.config) # self.typed_config = LLMNodeConfig(**self.config)
llm, prompt_or_messages = self._prepare_llm(state, True) llm, prompt_or_messages = self._prepare_llm(state, True)
logger.info(f"节点 {self.node_id} 开始执行 LLM 调用(非流式)") logger.info(f"节点 {self.node_id} 开始执行 LLM 调用(非流式)")