Spaces:
Sleeping
Sleeping
| 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() | |
| def context_analysis(msg: UserMessage): | |
| stored_data['context_analysis_interactions'].append({'role':'human', 'content':msg.message}) | |
| config={"configurable": {"thread_id": "context_analysis_1"}, | |
| "run_name":"context-analysis"} | |
| 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 | |