Reqxtract-v2 / app.py
Lucas ARRIESSE
Merge all API endpoints into the app API
f6bffda
raw
history blame
1.66 kB
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")