anubhav77's picture
v0.1.3
adeac66
raw
history blame
1.79 kB
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:
"""
Gets the query embeddings and uses metadata appropriately and gets the matching docs for query
TODO: Add parameter for type of query and number of docs to return
TODO: Add parameter to return the source information as well
"""
return getRelevantDocs(inStr)
@app.post(api_base+"/addTextDocument")
async def add_text_document(inStr: str,metadata: Any ) -> Any:
"""
Add text and metadata to the db
"""
return addText(inStr,metadata)
print(__name__)
if __name__ == '__main__' or __name__ == "src.main":
uvicorn.run(app, host="0.0.0.0", port=8000)