Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1156,6 +1156,54 @@ If you find any "Code-Blocks" then,
|
|
| 1156 |
print(f"[OVREALL LISTS OF LOGICS]: {Data}")
|
| 1157 |
logger.info("Plan refinement and block relation analysis completed for all plans.")
|
| 1158 |
return state
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1159 |
# Node 2: planner node
|
| 1160 |
def overall_planner_node(state: GameState):
|
| 1161 |
"""
|
|
@@ -2505,16 +2553,17 @@ def delay_for_tpm_node(state: GameState):
|
|
| 2505 |
workflow = StateGraph(GameState)
|
| 2506 |
|
| 2507 |
# Add all nodes to the workflow
|
| 2508 |
-
workflow.add_node("time_delay_1", delay_for_tpm_node)
|
| 2509 |
-
workflow.add_node("time_delay_2", delay_for_tpm_node)
|
| 2510 |
-
workflow.add_node("time_delay_3", delay_for_tpm_node)
|
| 2511 |
# workflow.add_node("time_delay_4", delay_for_tpm_node)
|
| 2512 |
workflow.add_node("pseudo_generator", pseudo_generator_node)
|
| 2513 |
-
workflow.add_node("plan_generator", overall_planner_node)
|
|
|
|
| 2514 |
#workflow.add_node("logic_alignment", plan_logic_aligner_node)
|
| 2515 |
#workflow.add_node("plan_verifier", plan_verification_node)
|
| 2516 |
-
workflow.add_node("refined_planner", refined_planner_node) # Refines the action plan
|
| 2517 |
-
workflow.add_node("opcode_counter", plan_opcode_counter_node)
|
| 2518 |
workflow.add_node("block_builder", overall_block_builder_node_2)
|
| 2519 |
workflow.add_node("variable_initializer", variable_adder_node)
|
| 2520 |
workflow.add_node("page_processed", processed_page_node)
|
|
@@ -2536,13 +2585,14 @@ workflow.add_conditional_edges(
|
|
| 2536 |
}
|
| 2537 |
)
|
| 2538 |
# Main chain
|
| 2539 |
-
workflow.add_edge("pseudo_generator", "time_delay_1")
|
| 2540 |
-
workflow.add_edge("
|
| 2541 |
-
workflow.add_edge("
|
| 2542 |
-
workflow.add_edge("
|
| 2543 |
-
workflow.add_edge("
|
| 2544 |
-
workflow.add_edge("
|
| 2545 |
-
workflow.add_edge("
|
|
|
|
| 2546 |
workflow.add_edge("block_builder", "variable_initializer")
|
| 2547 |
|
| 2548 |
# After last node, check again
|
|
|
|
| 1156 |
print(f"[OVREALL LISTS OF LOGICS]: {Data}")
|
| 1157 |
logger.info("Plan refinement and block relation analysis completed for all plans.")
|
| 1158 |
return state
|
| 1159 |
+
|
| 1160 |
+
# Node: Node Optimizer node
|
| 1161 |
+
def node_optimizer(state: GameState):
|
| 1162 |
+
logger.info("--- Running Node Optimizer Node ---")
|
| 1163 |
+
project_json = state["project_json"]
|
| 1164 |
+
raw = state.get("pseudo_code", {})
|
| 1165 |
+
refined_logic_data = raw.get("refined_logic", {})
|
| 1166 |
+
sprite_name = refined_logic_data.get("name_variable", "<unknown>")
|
| 1167 |
+
pseudo = refined_logic_data.get("pseudocode", "")
|
| 1168 |
+
sprite_name = {}
|
| 1169 |
+
project_json_targets = state.get("project_json", {}).get("targets", [])
|
| 1170 |
+
for target in project_json_targets:
|
| 1171 |
+
sprite_name[target["name"]] = target["name"]
|
| 1172 |
+
action_flow = state.get("action_plan", {})
|
| 1173 |
+
|
| 1174 |
+
try:
|
| 1175 |
+
refined_logic_data["pseudocode"] = separate_scripts(str(pseudo))
|
| 1176 |
+
# Step 4: If you want to update the `state` dictionary with the new refined_logic_data
|
| 1177 |
+
state["pseudo_code"]["refined_logic"] = refined_logic_data
|
| 1178 |
+
print(f"[The pseudo_code generated here]: { state['pseudo_code']}")
|
| 1179 |
+
state["action_plan"] = transform_logic_to_action_flow(state["pseudo_code"])
|
| 1180 |
+
print(f"[The action plan generated here]: { state['action_plan']}")
|
| 1181 |
+
|
| 1182 |
+
action_flow = state.get("action_plan", {})
|
| 1183 |
+
if action_flow.get("action_overall_flow", {}) == {}:
|
| 1184 |
+
plan_data = action_flow.items()
|
| 1185 |
+
else:
|
| 1186 |
+
plan_data = action_flow.get("action_overall_flow", {}).items()
|
| 1187 |
+
|
| 1188 |
+
refined_flow: Dict[str, Any] = {}
|
| 1189 |
+
for sprite, sprite_data in plan_data:
|
| 1190 |
+
refined_plans = []
|
| 1191 |
+
for plan in sprite_data.get("plans", []):
|
| 1192 |
+
logic = plan.get("logic", "")
|
| 1193 |
+
plan["opcode_counts"]= analyze_opcode_counts(str(logic))
|
| 1194 |
+
refined_plans.append(plan)
|
| 1195 |
+
refined_flow[sprite] = {
|
| 1196 |
+
"description": sprite_data.get("description", ""),
|
| 1197 |
+
"plans": refined_plans
|
| 1198 |
+
}
|
| 1199 |
+
if refined_flow:
|
| 1200 |
+
state["action_plan"] = refined_flow
|
| 1201 |
+
logger.info("Node Optimization completed.")
|
| 1202 |
+
|
| 1203 |
+
return state
|
| 1204 |
+
except Exception as e:
|
| 1205 |
+
logger.error(f"Error in Node Optimizer Node: {e}")
|
| 1206 |
+
|
| 1207 |
# Node 2: planner node
|
| 1208 |
def overall_planner_node(state: GameState):
|
| 1209 |
"""
|
|
|
|
| 2553 |
workflow = StateGraph(GameState)
|
| 2554 |
|
| 2555 |
# Add all nodes to the workflow
|
| 2556 |
+
# workflow.add_node("time_delay_1", delay_for_tpm_node)
|
| 2557 |
+
# workflow.add_node("time_delay_2", delay_for_tpm_node)
|
| 2558 |
+
# workflow.add_node("time_delay_3", delay_for_tpm_node)
|
| 2559 |
# workflow.add_node("time_delay_4", delay_for_tpm_node)
|
| 2560 |
workflow.add_node("pseudo_generator", pseudo_generator_node)
|
| 2561 |
+
#workflow.add_node("plan_generator", overall_planner_node)
|
| 2562 |
+
workflow.add_node("Node_optimizer", node_optimizer)
|
| 2563 |
#workflow.add_node("logic_alignment", plan_logic_aligner_node)
|
| 2564 |
#workflow.add_node("plan_verifier", plan_verification_node)
|
| 2565 |
+
#workflow.add_node("refined_planner", refined_planner_node) # Refines the action plan
|
| 2566 |
+
#workflow.add_node("opcode_counter", plan_opcode_counter_node)
|
| 2567 |
workflow.add_node("block_builder", overall_block_builder_node_2)
|
| 2568 |
workflow.add_node("variable_initializer", variable_adder_node)
|
| 2569 |
workflow.add_node("page_processed", processed_page_node)
|
|
|
|
| 2585 |
}
|
| 2586 |
)
|
| 2587 |
# Main chain
|
| 2588 |
+
# workflow.add_edge("pseudo_generator", "time_delay_1")
|
| 2589 |
+
workflow.add_edge("pseudo_generator", "Node_optimizer")
|
| 2590 |
+
# workflow.add_edge("time_delay_1", "plan_generator")
|
| 2591 |
+
# workflow.add_edge("plan_generator", "time_delay_2")
|
| 2592 |
+
# workflow.add_edge("time_delay_2", "refined_planner")
|
| 2593 |
+
# workflow.add_edge("refined_planner", "time_delay_3")
|
| 2594 |
+
# workflow.add_edge("time_delay_3", "opcode_counter")
|
| 2595 |
+
workflow.add_edge("Node_optimizer", "block_builder")
|
| 2596 |
workflow.add_edge("block_builder", "variable_initializer")
|
| 2597 |
|
| 2598 |
# After last node, check again
|