prthm11 commited on
Commit
318f3a9
·
verified ·
1 Parent(s): b027234

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -13
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("time_delay_1", "plan_generator")
2541
- workflow.add_edge("plan_generator", "time_delay_2")
2542
- workflow.add_edge("time_delay_2", "refined_planner")
2543
- workflow.add_edge("refined_planner", "time_delay_3")
2544
- workflow.add_edge("time_delay_3", "opcode_counter")
2545
- workflow.add_edge("opcode_counter", "block_builder")
 
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