Files
my-v0-server/app/processor/nodes/fallback_node.py
T
2026-09-24 11:58:25 +08:00

38 lines
1.2 KiB
Python

"""停止自动修正并保留诊断信息"""
from app.processor.base import BaseNode
from app.processor.state import QueryState
class FallbackNode(BaseNode):
name = "fallback_node"
def process(self, state: QueryState) -> QueryState:
updated_state: QueryState = state.copy()
reason = state.get("failure_reason")
if not reason:
reason = f"动作校验未通过,已达到自动修正上限,共重试 {state.get('retry_count', 0)} 次"
# actions 仅保留作诊断,不交付部分结果
updated_state["status"] = "failed"
updated_state["failure_reason"] = reason
updated_state["validation_passed"] = False
updated_state["simulated_screen"] = None
return updated_state
if __name__ == "__main__":
from app.schemas.action_validation import ActionValidationError
state = {
"request": {},
"retry_count": 2,
"actions": None,
"validation_errors": [
ActionValidationError(code="generation_error", message="动作生成失败")
],
}
node = FallbackNode()
final_state = node.process(state)
print(final_state)