File size: 1,680 Bytes
1b57e39 5ef0f8d 1b57e39 c1faac1 5ef0f8d 546fbbe f6bffda 5ef0f8d 040cfa1 1392287 03e159d 040cfa1 c1faac1 035141c c1faac1 5ef0f8d 1b57e39 040cfa1 1392287 040cfa1 9829679 c1faac1 4e54efb 5ef0f8d f6bffda 035141c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
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", docs_url="/apidocs")
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")
|