fix(workflow): fix message merging in parallel states and ensure LLM node parameter validation errors are properly thrown
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 调用(非流式)")
|
||||||
|
|||||||
Reference in New Issue
Block a user