Spaces:
Sleeping
Sleeping
| import asyncio | |
| import logging | |
| from dotenv import load_dotenv | |
| from typing import Literal | |
| import nltk | |
| import warnings | |
| import os | |
| from fastapi import Depends, FastAPI, BackgroundTasks, HTTPException, Request | |
| from fastapi.staticfiles import StaticFiles | |
| import api.solutions | |
| from dependencies import get_llm_router, init_dependencies | |
| import api.docs | |
| import api.requirements | |
| from api.docs import docx_to_txt | |
| from schemas import * | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from fastapi.responses import FileResponse, StreamingResponse | |
| from litellm.router import Router | |
| load_dotenv() | |
| logging.basicConfig( | |
| level=logging.DEBUG if (os.environ.get( | |
| "DEBUG_LOG", "0") == "1") else logging.INFO, | |
| format='[%(asctime)s][%(levelname)s][%(filename)s:%(lineno)d]: %(message)s', | |
| datefmt='%Y-%m-%d %H:%M:%S' | |
| ) | |
| # Initialize global dependencies | |
| init_dependencies() | |
| # Download required packages for NLTK | |
| nltk.download('stopwords') | |
| nltk.download('punkt_tab') | |
| nltk.download('wordnet') | |
| warnings.filterwarnings("ignore") | |
| app = FastAPI(title="Requirements Extractor") | |
| app.add_middleware(CORSMiddleware, allow_credentials=True, allow_headers=[ | |
| "*"], allow_methods=["*"], allow_origins=["*"]) | |
| # ======================================================================================================================================================================================= | |
| app.include_router(api.docs.router, prefix="/docs") | |
| app.include_router(api.requirements.router, prefix="/requirements") | |
| app.include_router(api.solutions.router, prefix="/solutions") | |
| app.mount("/", StaticFiles(directory="static", html=True), name="static") | |