File size: 1,600 Bytes
583f6dd
8039e4b
5c271a3
ef9fa4b
8039e4b
583f6dd
7a3f093
 
ef9fa4b
583f6dd
5c271a3
 
 
ef9fa4b
7a3f093
 
583f6dd
 
7a3f093
a6a0614
 
7a3f093
 
 
 
 
 
5c271a3
7a3f093
 
 
 
 
5c271a3
7a3f093
3002e1b
7a3f093
5c271a3
 
 
8039e4b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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