Spaces:
Runtime error
Runtime error
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" | |
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) | |
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) |