from datetime import datetime import logging import fastapi from fastapi import Body, Depends import uvicorn from fastapi import HTTPException , status from fastapi.responses import JSONResponse from fastapi.middleware.cors import CORSMiddleware from fastapi import FastAPI as Response from sse_starlette.sse import EventSourceResponse from starlette.responses import StreamingResponse from starlette.requests import Request from pydantic import BaseModel from enum import Enum from typing import List, Dict, Any, Generator, Optional, cast, Callable from indexer import * async def catch_exceptions_middleware( request: Request, call_next: Callable[[Request], Any] ) -> Response: try: return await call_next(request) except Exception as e: return JSONResponse(content={"error": repr(e)}, status_code=500) app = fastapi.FastAPI(title="Maya Persistet") app.middleware("http")(catch_exceptions_middleware) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) api_base="/api/v1" @app.post(api_base+"/getMatchingDocs") async def get_matching_docs(inStr: str ) -> Any: """ """ return getRelevantDocs(inStr) print(__name__) if __name__ == '__main__' or __name__ == "src.main": uvicorn.run(app, host="0.0.0.0", port=8000)