fix(workflow): fix default values in parameter extraction node and incorrect value retrieval in comparison operations

This commit is contained in:
mengyonghao
2026-01-12 20:24:49 +08:00
parent a006bc94b9
commit 6a78ed7c8a
3 changed files with 13 additions and 6 deletions

View File

@@ -260,8 +260,7 @@ class ConditionBase(ABC):
raise RuntimeError("Unsupported variable type")
def check(self, no_right=False):
left = self.pool.get(self.left_selector.variable_selector)
if not isinstance(left, self.type_limit):
if not isinstance(self.left_value, self.type_limit):
raise TypeError(f"The variable to be compared on must be of {self.type_limit} type")
if not no_right:
right = self.resolve_right_literal_value()

View File

@@ -37,7 +37,7 @@ class ParamsConfig(BaseModel):
)
required: bool = Field(
...,
default=False,
description="Whether the parameter is required"
)
@@ -59,6 +59,6 @@ class ParameterExtractorNodeConfig(BaseNodeConfig):
)
prompt: str = Field(
...,
default="",
description="User-provided supplemental prompt"
)

View File

@@ -157,9 +157,17 @@ class ParameterExtractorNode(BaseNode):
messages = [
("system", system_prompt),
("user", self._render_template(self.typed_config.prompt, state)),
("user", rendered_user_prompt),
]
if self.typed_config.prompt:
messages.extend([
("user", self._render_template(self.typed_config.prompt, state)),
("user", rendered_user_prompt),
])
else:
messages.extend([
("user", rendered_user_prompt),
])
model_resp = await llm.ainvoke(messages)
result = json_repair.repair_json(model_resp.content, return_objects=True)