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