Spaces:
No application file
No application file
| import json | |
| import warnings | |
| from fastapi import FastAPI, Request | |
| from fastapi.responses import JSONResponse | |
| from fastapi.middleware.cors import CORSMiddleware | |
| import os | |
| # Import routes | |
| # from routes import collections, ingestion, sessions, chat, system | |
| from Redis.sessions import Redis_session_router | |
| from Redis.sessions_new import redis_session_route_new | |
| from Redis.sessions_old import Redis_session_router_old | |
| # from Routes.main_chat_bot import main_chatbot_route | |
| # from Routes.generate_report import Report_Generation_Router | |
| # from report_generation.report_generation import Report_Generation_Router_v2 | |
| from s3.file_insertion_s3 import s3_bucket_router | |
| from s3.rough2 import test_router | |
| # from backend.main import login_apis_router | |
| from s3.r3 import s3_bucket_router1 | |
| from s3_viewer_backend.s3_viewer import s3_viewer_router | |
| from vector_db.retrival_qa_agent import RetrievalQA_router | |
| # # from main_chat_2.main_chat import main_chat_router_v4 | |
| from main_chat5.main_chat_router import main_chat_router_v5 | |
| from report_generation.ppt_v2 import Report_Generation_Router_ppt_v2 | |
| from report_generation.pdf_v3 import Report_Generation_Router_pdf_v2 | |
| # from Routes.main_agent_chat_bot_v2 import main_chatbot_route_v2 | |
| from vector_db import qdrant_crud | |
| from vector_db.qdrant_crud import Qdrant_router | |
| # from agent_tools.autovis_tool import Autoviz_router | |
| # from main_chat_2.main_chat import main_chat_router_v3 | |
| from DB_store_backup.agentic_context_convoid_management import Db_store_router | |
| # Suppress warnings | |
| warnings.filterwarnings("ignore", message="Qdrant client version.*is incompatible.*") | |
| app = FastAPI(title="Combined AI Agent with Qdrant Collections and Redis Session Management") | |
| # Add CORS middleware | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| print([route.path for route in app.routes]) | |
| # Include routers | |
| # app.include_router(main_chatbot_route) | |
| # app.include_router(Report_Generation_Router) | |
| app.include_router(Redis_session_router) | |
| app.include_router(redis_session_route_new) | |
| # app.include_router(Redis_session_router_old) | |
| app.include_router(Db_store_router) | |
| app.include_router(s3_bucket_router) | |
| # app.include_router(Autoviz_router) | |
| # app.include_router(main_chat_router_v3) | |
| app.include_router(s3_viewer_router) | |
| app.include_router(s3_bucket_router1) | |
| # app.include_router(main_chat_router_v4) | |
| app.include_router(test_router) | |
| app.include_router(Qdrant_router) | |
| app.include_router(RetrievalQA_router) | |
| # app.include_router(main_chatbot_route_v2) | |
| # app.include_router(Report_Generation_Router_v2) | |
| app.include_router(Report_Generation_Router_ppt_v2) | |
| app.include_router(Report_Generation_Router_pdf_v2) | |
| app.include_router(main_chat_router_v5) | |
| #==================================login and user management routes================================== | |
| # app.include_router(login_apis_router) | |
| # ------------------- MIDDLEWARE ------------------- | |
| async def add_success_flag(request: Request, call_next): | |
| response = await call_next(request) | |
| # Only modify JSON responses | |
| if "application/json" in response.headers.get("content-type", ""): | |
| try: | |
| body = b"".join([chunk async for chunk in response.body_iterator]) | |
| data = json.loads(body.decode()) | |
| # Add success flag | |
| data["success"] = 200 <= response.status_code < 300 | |
| # Build new JSONResponse (auto handles Content-Length) | |
| response = JSONResponse( | |
| content=data, | |
| status_code=response.status_code, | |
| headers={k: v for k, v in response.headers.items() if k.lower() != "content-length"}, | |
| ) | |
| except Exception: | |
| # fallback if response is not JSON parseable | |
| pass | |
| return response | |