import ast import json import logging from fastapi import APIRouter from fastapi.responses import StreamingResponse from api.stored_data import stored_data from src.genai.context_analysis_agent.agent import ContextAnalysisAgent from src.genai.context_analysis_agent.utils.utils import DetailsExtractorNode , SaveToDB from api.schemas.context_analysis import UserMessage app_logger = logging.getLogger("app_logger") error_logger = logging.getLogger("error_logger") router = APIRouter() agent=ContextAnalysisAgent() context_graph = agent.context_analysis_graph() @router.post("/context-analysis") def context_analysis(msg: UserMessage): stored_data['context_analysis_interactions'].append({'role':'human', 'content':msg.message}) config={"configurable": {"thread_id": "context_analysis_1"}} try: result=context_graph.invoke({'messages':msg.message},config=config) stored_data['context_analysis_interactions'].append({'role':'ai', 'content':result['messages'][-1].content}) if result['completion']==True: formatted_details=DetailsExtractorNode(stored_data['context_analysis_interactions']).run() app_logger.info('Context Analysis Completed.') return {'response':result['messages'][-1].content , 'complete':True , 'business_details': formatted_details} else: return {'response':result['messages'][-1].content , 'complete':False} except Exception as e: error_logger.error(f"Failed Executing context analysis: {e}") raise