import ast from fastapi import APIRouter from api.stored_data import stored_data from src.genai.ideation_agent.agent import ideation_graph from langgraph.errors import GraphRecursionError router = APIRouter() idea_graph = ideation_graph() @router.post("/ideation") def ideation_endpoint(): config={"recursion_limit":15, "configurable": {"thread_id": "ideation_thread123"}} try: result = idea_graph.invoke( { 'business_details': [stored_data['business_details']], 'image_caption': [stored_data['image_caption'] if 'image_caption' in stored_data else ""] }, config=config, ) stored_data['final_ideation'] = result['improver_response'][-1] stored_data['final_ideation']=ast.literal_eval(stored_data['final_ideation']) return {'response':ast.literal_eval(result['improver_response'][-1])} except GraphRecursionError: result = idea_graph.get_state({"configurable": {"thread_id": "ideation_thread123"}}) return {'response': result[0]}