CoolFace
Apppublic

Waseem2106/network-security

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
app.py86 linesDownload Raw Back to root
1import os
2import sys
3
4import certifi
5ca=certifi.where()
6
7from dotenv import load_dotenv
8load_dotenv()
9
10mongo_db_url=os.getenv("MONGO_DB_URL")
11print(mongo_db_url)
12
13import pymongo
14from networkSecurity.exception.exception import NetworkSecurityException
15from networkSecurity.logging.logger import logging
16from networkSecurity.pipeline.training_pipeline import TrainingPipeline
17
18from fastapi.middleware.cors import CORSMiddleware
19from fastapi import FastAPI,File,UploadFile,Request
20from uvicorn import run as app_run
21from fastapi.responses import Response
22from starlette.responses import RedirectResponse
23import pandas as pd
24
25from networkSecurity.utils.main_utils.utils import load_object
26
27client= pymongo.MongoClient(mongo_db_url,tlsCAFile=ca)
28
29from networkSecurity.constant.training_pipeline import DATA_INGESTION_COLLECTION_NAME
30from networkSecurity.constant.training_pipeline import DATA_INGESTION_DATABASES_NAME
31from networkSecurity.utils.ml_utils.model.estimaor import NetworkModel
32database=client[DATA_INGESTION_DATABASES_NAME]
33collection=database[DATA_INGESTION_COLLECTION_NAME]
34
35app=FastAPI()
36origins=["*"]
37
38app.add_middleware(
39    CORSMiddleware,
40    allow_origins=origins,
41    allow_credentials=True,
42    allow_methods=["*"],
43    allow_headers=["*"],
44)
45
46from fastapi.templating import Jinja2Templates
47templates=Jinja2Templates(directory="./template")
48
49@app.get("/",tags=["authentication"])
50async def index():
51    return RedirectResponse(url="/docs")
52
53
54@app.get("/train")
55async def train_route():
56    try:
57        train_pipeline=TrainingPipeline()
58        train_pipeline.run_pipeline()
59        return Response("Training is Successfull")
60    except Exception as e:
61        raise NetworkSecurityException(e,sys)
62    
63@app.get("/predict")
64async def predict_route(request:Request,file:UploadFile=File(...)):
65    try:
66        df=pd.read_csv(file.file)
67        preprocessor=load_object("final_models/preprocessor.pkl")
68        final_models=load_object("final_models/model.pkl")
69        network_model=NetworkModel(preprocessor=preprocessor,model=final_models)
70        print(df.iloc[0])
71        y_pred=network_model.predict(df)
72        print(y_pred)
73        df['predicted_column']=y_pred
74        print(df['predicted_column'])
75        ##df['predicted_column'].replace(-1,0)
76        #return df.to_json()
77        df.to_csv("predicted_output/output.csv")
78        table_html=df.to_html(classes='table table-striped')
79        #printitable html
80        return templates.TemplateResponse('table.html',{'request':request,"table":table_html})
81    except Exception as e:
82        raise NetworkSecurityException(e,sys)
83    
84
85#if __name__=="__main__":
86  #  app_run(app,host="localhost",port=8000)