Spaces:
Sleeping
Sleeping
| import logging | |
| from contextlib import asynccontextmanager | |
| from app.modules.clearVariables.routes.clearVariables_route import \ | |
| router as clear_variables_routes | |
| from app.modules.documentHandeler.routes.document_handeler_route import \ | |
| router as upload_file_routes | |
| from app.modules.querySearch.routes.querySearch_route import \ | |
| router as query_search_routes | |
| from fastapi import APIRouter, FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from fastapi.responses import FileResponse | |
| from fastapi.staticfiles import StaticFiles | |
| from transformers import (AutoModel, AutoModelForMaskedLM, AutoTokenizer, | |
| pipeline) | |
| async def lifespan(app: FastAPI): | |
| dense_model_name = "sentence-transformers/all-MiniLM-L6-v2" | |
| sparse_model_name = "prithivida/Splade_PP_en_v1" | |
| qa_model_name = "deepset/roberta-base-squad2" | |
| dense_tokenizer = AutoTokenizer.from_pretrained(dense_model_name) | |
| dense_model = AutoModel.from_pretrained(dense_model_name) | |
| sparse_tokenizer = AutoTokenizer.from_pretrained(sparse_model_name) | |
| sparse_model = AutoModelForMaskedLM.from_pretrained(sparse_model_name) | |
| qa_pipeline = pipeline("question-answering", model=qa_model_name) | |
| yield { | |
| "dense_tokenizer": dense_tokenizer, | |
| "dense_model": dense_model, | |
| "sparse_tokenizer": sparse_tokenizer, | |
| "sparse_model": sparse_model, | |
| "qa_pipeline": qa_pipeline, | |
| } | |
| app = FastAPI(lifespan=lifespan) | |
| origins = [ | |
| "http://localhost:8000", | |
| "http://localhost:3000", | |
| "localhost:8000", | |
| "https://abadesalex-docurag.hf.space/api", | |
| "https://abadesalex-docurag.hf.space", | |
| ] | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=origins, | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| app_router = APIRouter(prefix="/api") | |
| app_router.include_router(upload_file_routes, prefix="/document", tags=["document"]) | |
| app_router.include_router(query_search_routes, prefix="/query", tags=["query"]) | |
| app_router.include_router(clear_variables_routes, prefix="/clear", tags=["clear"]) | |
| # @app_router.get("/") | |
| # async def root(): | |
| # return {"message": "Hello World"} | |
| # Serve static files from the 'out/_next/static' directory | |
| app.mount("/_next/static", StaticFiles(directory="app/out/_next/static"), name="static") | |
| # Serve the main index.html | |
| def read_root(): | |
| return FileResponse("app/out/index.html") | |
| async def startup_event(): | |
| logging.info("Application is starting up...") | |
| async def shutdown_event(): | |
| logging.info("Application is shutting down...") | |
| app.include_router(app_router) | |