cloud450 commited on
Commit
882b33c
·
verified ·
1 Parent(s): 546e0e4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -29
app.py CHANGED
@@ -1,29 +1,38 @@
1
- from fastapi import FastAPI
2
- import joblib
3
- import pandas as pd
4
-
5
- app = FastAPI()
6
-
7
- # Load models once at startup
8
- future_spend_model = joblib.load("future_spend_7d.pkl")
9
- spike_model = joblib.load("spike_probability.pkl")
10
- acc_model = joblib.load("acceleration.pkl")
11
- FEATURES = joblib.load("model_features.pkl")
12
-
13
- @app.get("/")
14
- def root():
15
- return {"status": "ML backend running"}
16
-
17
- @app.post("/predict")
18
- def predict(payload: dict):
19
- X = pd.DataFrame([payload], columns=FEATURES)
20
-
21
- future_spend = future_spend_model.predict(X)[0]
22
- spike_prob = spike_model.predict_proba(X)[0][1]
23
- acceleration = acc_model.predict(X)[0]
24
-
25
- return {
26
- "future_7d_spend": round(float(future_spend), 2),
27
- "spike_probability": round(float(spike_prob), 3),
28
- "acceleration": round(float(acceleration), 2)
29
- }
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ import joblib
4
+ import pandas as pd
5
+
6
+ app = FastAPI()
7
+
8
+ app.add_middleware(
9
+ CORSMiddleware,
10
+ allow_origins=["*"], # Allows all origins
11
+ allow_credentials=True,
12
+ allow_methods=["*"], # Allows all methods
13
+ allow_headers=["*"], # Allows all headers
14
+ )
15
+
16
+ # Load models once at startup
17
+ future_spend_model = joblib.load("future_spend_7d.pkl")
18
+ spike_model = joblib.load("spike_probability.pkl")
19
+ acc_model = joblib.load("acceleration.pkl")
20
+ FEATURES = joblib.load("model_features.pkl")
21
+
22
+ @app.get("/")
23
+ def root():
24
+ return {"status": "ML backend running"}
25
+
26
+ @app.post("/predict")
27
+ def predict(payload: dict):
28
+ X = pd.DataFrame([payload], columns=FEATURES)
29
+
30
+ future_spend = future_spend_model.predict(X)[0]
31
+ spike_prob = spike_model.predict_proba(X)[0][1]
32
+ acceleration = acc_model.predict(X)[0]
33
+
34
+ return {
35
+ "future_7d_spend": round(float(future_spend), 2),
36
+ "spike_probability": round(float(spike_prob), 3),
37
+ "acceleration": round(float(acceleration), 2)
38
+ }