Israaabdelghany's picture
add graph
7a3c572
Raw
History Blame Contribute Delete
1.42 kB
# FrameProcessor/graph/workflow.py
import sys, os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))
from types_.state import GraphState
from langgraph.graph import StateGraph, END
from types_.state import GraphState
from FrameProcessor.graph.steps.extract_features import extract_frame_features
from FrameProcessor.graph.steps.evaluate_importance import evaluate_importance
from FrameProcessor.graph.steps.describe_frame import describe_frame
def decide_next_step(state: GraphState) -> str:
return state["next_step"]
def build_graph():
workflow = StateGraph(GraphState)
# Add steps
workflow.add_node("extract_features", extract_frame_features)
workflow.add_node("evaluate_importance", evaluate_importance)
workflow.add_node("describe_frame", describe_frame)
# Define transitions
workflow.add_edge("extract_features", "evaluate_importance")
workflow.add_conditional_edges(
"evaluate_importance",
decide_next_step,
{
"describe_frame": "describe_frame",
END: END
}
)
workflow.add_edge("describe_frame", END)
workflow.set_entry_point("extract_features")
return workflow.compile()
# Export the compiled graph
frame_processor = build_graph()
print("Graph compiled successfully.")
print(frame_processor.get_graph().draw_mermaid())
frame_processor.get_graph().print_ascii()