GenAI-FASTAPI / api /routers /context_analysis.py
subashpoudel's picture
updated analytics
a6a0614
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"},
"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