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")