Spaces:
Sleeping
Sleeping
| from langgraph.graph import StateGraph | |
| from graph.types import SDGState | |
| from graph.nodes.evolve import evolve_question | |
| from graph.nodes.retrieve import retrieve_relevant_context | |
| from graph.nodes.answer import generate_answer | |
| def build_sdg_graph(docs, vectorstore, llm) -> StateGraph: | |
| # Create a new graph with our state type | |
| builder = StateGraph(SDGState) | |
| # Add nodes with explicit state handling | |
| builder.add_node("evolve", lambda state: evolve_question(state, llm)) | |
| builder.add_node("retrieve", lambda state: retrieve_relevant_context(state, vectorstore)) | |
| builder.add_node("generate_answer", generate_answer) | |
| # Define the flow | |
| builder.set_entry_point("evolve") | |
| builder.add_edge("evolve", "retrieve") | |
| builder.add_edge("retrieve", "generate_answer") | |
| builder.set_finish_point("generate_answer") | |
| # Compile the graph | |
| graph = builder.compile() | |
| # Return the graph | |
| return graph |