Update app.py
Browse files
app.py
CHANGED
|
@@ -22,7 +22,7 @@ from langchain_core.utils.utils import secret_from_env
|
|
| 22 |
from io import BytesIO
|
| 23 |
from pathlib import Path
|
| 24 |
import os
|
| 25 |
-
from utils.block_relation_builder import block_builder#, variable_adder_main
|
| 26 |
from langchain.chat_models import ChatOpenAI
|
| 27 |
from langchain_openai import ChatOpenAI
|
| 28 |
from pydantic import Field, SecretStr
|
|
@@ -1009,6 +1009,23 @@ If you find any "Code-Blocks" then,
|
|
| 1009 |
print(f"[OVREALL LISTS OF LOGICS]: {Data}")
|
| 1010 |
logger.info("Plan refinement and block relation analysis completed for all plans.")
|
| 1011 |
return state
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1012 |
# Node 2: planner node
|
| 1013 |
def overall_planner_node(state: GameState):
|
| 1014 |
"""
|
|
@@ -2353,16 +2370,17 @@ def delay_for_tpm_node(state: GameState):
|
|
| 2353 |
workflow = StateGraph(GameState)
|
| 2354 |
|
| 2355 |
# Add all nodes to the workflow
|
| 2356 |
-
workflow.add_node("time_delay_1", delay_for_tpm_node)
|
| 2357 |
-
workflow.add_node("time_delay_2", delay_for_tpm_node)
|
| 2358 |
-
workflow.add_node("time_delay_3", delay_for_tpm_node)
|
| 2359 |
# workflow.add_node("time_delay_4", delay_for_tpm_node)
|
| 2360 |
workflow.add_node("pseudo_generator", pseudo_generator_node)
|
| 2361 |
-
workflow.add_node("plan_generator", overall_planner_node)
|
|
|
|
| 2362 |
#workflow.add_node("logic_alignment", plan_logic_aligner_node)
|
| 2363 |
#workflow.add_node("plan_verifier", plan_verification_node)
|
| 2364 |
-
workflow.add_node("refined_planner", refined_planner_node) # Refines the action plan
|
| 2365 |
-
workflow.add_node("opcode_counter", plan_opcode_counter_node)
|
| 2366 |
workflow.add_node("block_builder", overall_block_builder_node_2)
|
| 2367 |
workflow.add_node("variable_initializer", variable_adder_node)
|
| 2368 |
workflow.add_node("page_processed", processed_page_node)
|
|
@@ -2384,13 +2402,14 @@ workflow.add_conditional_edges(
|
|
| 2384 |
}
|
| 2385 |
)
|
| 2386 |
# Main chain
|
| 2387 |
-
workflow.add_edge("pseudo_generator", "time_delay_1")
|
| 2388 |
-
workflow.add_edge("
|
| 2389 |
-
workflow.add_edge("
|
| 2390 |
-
workflow.add_edge("
|
| 2391 |
-
workflow.add_edge("
|
| 2392 |
-
workflow.add_edge("
|
| 2393 |
-
workflow.add_edge("
|
|
|
|
| 2394 |
workflow.add_edge("block_builder", "variable_initializer")
|
| 2395 |
|
| 2396 |
# After last node, check again
|
|
|
|
| 22 |
from io import BytesIO
|
| 23 |
from pathlib import Path
|
| 24 |
import os
|
| 25 |
+
from utils.block_relation_builder import block_builder, separate_scripts, transform_logic_to_action_flow#, variable_adder_main
|
| 26 |
from langchain.chat_models import ChatOpenAI
|
| 27 |
from langchain_openai import ChatOpenAI
|
| 28 |
from pydantic import Field, SecretStr
|
|
|
|
| 1009 |
print(f"[OVREALL LISTS OF LOGICS]: {Data}")
|
| 1010 |
logger.info("Plan refinement and block relation analysis completed for all plans.")
|
| 1011 |
return state
|
| 1012 |
+
|
| 1013 |
+
def node_optimizer(state: GameState):
|
| 1014 |
+
logger.info("--- Running Node Optimizer Node ---")
|
| 1015 |
+
project_json = state["project_json"]
|
| 1016 |
+
raw = state.get("pseudo_code", {})
|
| 1017 |
+
refined_logic_data = raw.get("refined_logic", {})
|
| 1018 |
+
sprite_name = refined_logic_data.get("name_variable", "<unknown>")
|
| 1019 |
+
pseudo = refined_logic_data.get("pseudocode", "")
|
| 1020 |
+
try:
|
| 1021 |
+
refined_logic_data["pseudocode"] = separate_scripts(pseudo)
|
| 1022 |
+
# Step 4: If you want to update the `state` dictionary with the new refined_logic_data
|
| 1023 |
+
state["pseudo_code"]["refined_logic"] = refined_logic_data
|
| 1024 |
+
state["action_plan"] = transform_logic_to_action_flow(state["pseudo_code"])
|
| 1025 |
+
return state
|
| 1026 |
+
except Exception as e:
|
| 1027 |
+
logger.error(f"Error in Node Optimizer Node: {e}")
|
| 1028 |
+
|
| 1029 |
# Node 2: planner node
|
| 1030 |
def overall_planner_node(state: GameState):
|
| 1031 |
"""
|
|
|
|
| 2370 |
workflow = StateGraph(GameState)
|
| 2371 |
|
| 2372 |
# Add all nodes to the workflow
|
| 2373 |
+
# workflow.add_node("time_delay_1", delay_for_tpm_node)
|
| 2374 |
+
# workflow.add_node("time_delay_2", delay_for_tpm_node)
|
| 2375 |
+
# workflow.add_node("time_delay_3", delay_for_tpm_node)
|
| 2376 |
# workflow.add_node("time_delay_4", delay_for_tpm_node)
|
| 2377 |
workflow.add_node("pseudo_generator", pseudo_generator_node)
|
| 2378 |
+
#workflow.add_node("plan_generator", overall_planner_node)
|
| 2379 |
+
workflow.add_node("Node_optimizer", node_optimizer)
|
| 2380 |
#workflow.add_node("logic_alignment", plan_logic_aligner_node)
|
| 2381 |
#workflow.add_node("plan_verifier", plan_verification_node)
|
| 2382 |
+
#workflow.add_node("refined_planner", refined_planner_node) # Refines the action plan
|
| 2383 |
+
#workflow.add_node("opcode_counter", plan_opcode_counter_node)
|
| 2384 |
workflow.add_node("block_builder", overall_block_builder_node_2)
|
| 2385 |
workflow.add_node("variable_initializer", variable_adder_node)
|
| 2386 |
workflow.add_node("page_processed", processed_page_node)
|
|
|
|
| 2402 |
}
|
| 2403 |
)
|
| 2404 |
# Main chain
|
| 2405 |
+
# workflow.add_edge("pseudo_generator", "time_delay_1")
|
| 2406 |
+
workflow.add_edge("pseudo_generator", "Node_optimizer")
|
| 2407 |
+
# workflow.add_edge("time_delay_1", "plan_generator")
|
| 2408 |
+
# workflow.add_edge("plan_generator", "time_delay_2")
|
| 2409 |
+
# workflow.add_edge("time_delay_2", "refined_planner")
|
| 2410 |
+
# workflow.add_edge("refined_planner", "time_delay_3")
|
| 2411 |
+
# workflow.add_edge("time_delay_3", "opcode_counter")
|
| 2412 |
+
workflow.add_edge("Node_optimizer", "block_builder")
|
| 2413 |
workflow.add_edge("block_builder", "variable_initializer")
|
| 2414 |
|
| 2415 |
# After last node, check again
|