Spaces:
Sleeping
Sleeping
| from langgraph.graph import StateGraph, END | |
| from langgraph.checkpoint.memory import MemorySaver | |
| import logging | |
| from schema import RecommendationState | |
| from nodes import ( | |
| intent_detector_node, | |
| inspect_schema_node, | |
| generate_query_node, | |
| validate_query_node, | |
| execute_query_node, | |
| format_response_node) | |
| logger = logging.getLogger(__name__) | |
| graph_checkpointer = MemorySaver() | |
| def build_recommendation_graph(): | |
| """ | |
| Builds the LangGraph workflow for product recommendations | |
| Memory is managed by the checkpointer automatically | |
| """ | |
| workflow = StateGraph(RecommendationState) | |
| workflow.add_node("intent_detector", intent_detector_node) | |
| workflow.add_node("schema_inspector", inspect_schema_node) | |
| workflow.add_node("query_generator", generate_query_node) | |
| workflow.add_node("query_validator", validate_query_node) | |
| workflow.add_node("query_executor", execute_query_node) | |
| workflow.add_node("response_formatter", format_response_node) | |
| workflow.set_entry_point("schema_inspector") | |
| workflow.add_edge("schema_inspector", "query_generator") | |
| workflow.add_edge("query_generator", "query_validator") | |
| workflow.add_edge("query_validator", "query_executor") | |
| workflow.add_edge("query_executor", "response_formatter") | |
| workflow.add_edge("response_formatter", END) | |
| return workflow.compile(checkpointer=graph_checkpointer) | |
| recommendation_graph = build_recommendation_graph() | |
| logger.info(" Recommendation graph compiled successfully with short-term memory") |