Spaces:
Runtime error
Runtime error
| from langgraph.graph import StateGraph | |
| from typing import TypedDict, Annotated | |
| from langgraph.graph.message import add_messages | |
| from langchain_core.runnables.graph import MermaidDrawMethod | |
| class State(TypedDict): | |
| messages: Annotated[list[str], add_messages] | |
| current_step: str | |
| def collect_info(state: State) -> dict: | |
| print("\n--> In collect_info") | |
| print(f"Messages before: {state['messages']}") | |
| messages = state["messages"] + ["Information collected"] | |
| print(f"Messages after: {messages}") | |
| return { | |
| "messages": messages, | |
| "current_step": "process" | |
| } | |
| def process_info(state: State) -> dict: | |
| print("\n--> In process_info") | |
| print(f"Messages before: {state['messages']}") | |
| messages = state["messages"] + ["Information processed"] | |
| print(f"Messages after: {messages}") | |
| return { | |
| "messages": messages, | |
| "current_step": "end" | |
| } | |
| # Create and setup graph | |
| workflow = StateGraph(State) | |
| # Add nodes | |
| workflow.add_node("collect", collect_info) | |
| workflow.add_node("process", process_info) | |
| # Add edges | |
| workflow.add_edge("collect", "process") | |
| # Set entry and finish points | |
| workflow.set_entry_point("collect") | |
| workflow.set_finish_point("process") | |
| app = workflow.compile() | |
| # Run workflow | |
| print("\nStarting workflow...") | |
| initial_state = State(messages=["Starting"], current_step="collect") | |
| final_state = app.invoke(initial_state) | |
| print(f"\nFinal messages: {final_state['messages']}") | |
| # Save the graph visualization as PNG | |
| png_data = app.get_graph().draw_mermaid_png(draw_method=MermaidDrawMethod.API) | |
| with open("workflow_graph.png", "wb") as f: | |
| f.write(png_data) | |
| print("\nGraph visualization saved as 'workflow_graph.png'") |