import langgraph from langgraph.nodes import ToolNode, LLMNode graph = langgraph.Graph() def ingest_data(input): return {"df": load_csv_to_df(input["file_path"])} def transform_data(input): df = input["df"] return {"df": df.dropna().drop_duplicates()} def load_data(input): df = input["df"] return {"success": upload_df_to_db(df)} graph.add_node(ToolNode(func=ingest_data), inputs=["file_path"]) graph.add_node(ToolNode(func=transform_data), inputs=["df"]) graph.add_node(ToolNode(func=load_data), inputs=["df"]) graph.add_edge("ingest_data", "transform_data") graph.add_edge("transform_data", "load_data") graph.compile("file_path") # Run: graph.run({"file_path": "/tmp/source.csv"})