Skip to content

Commit e50fa1d

Browse files
committed
Correcting format based on flask 8
1 parent be90430 commit e50fa1d

File tree

6 files changed

+16
-17
lines changed

6 files changed

+16
-17
lines changed

src/api/main.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,19 @@
44

55
from .pydantic_models import CustomerData, PredictionResponse
66

7+
78
app = FastAPI()
89

910
# Set MLflow tracking URI to the container's path
1011
mlflow.set_tracking_uri("file:///app/mlruns")
1112

1213
# Load the model from MLflow artifacts inside Docker
13-
model_uri = "file:///app/mlruns/1/models/m-b56f931bfa444e04b71e0ac2ecbe00fb/artifacts"
14+
model_uri = (
15+
"file:///app/mlruns/1/models/m-b56f931bfa444e04b71e0ac2ecbe00fb/artifacts"
16+
)
1417
model = mlflow.sklearn.load_model(model_uri)
1518

19+
1620
@app.post("/predict", response_model=PredictionResponse)
1721
def predict(data: CustomerData):
1822
try:
@@ -23,12 +27,3 @@ def predict(data: CustomerData):
2327
return {"risk_probability": prob}
2428
except Exception as e:
2529
return {"detail": f"Prediction failed: {e}"}
26-
27-
#@app.post("/predict", response_model=PredictionResponse)
28-
#def predict(data: CustomerData):
29-
#try:
30-
#input_df = pd.DataFrame([data.dict()])
31-
#prob = model.predict_proba(input_df)[0][1]
32-
#return {"risk_probability": prob}
33-
#except Exception as e:
34-
#return {"detail": f"Prediction failed: {e}"}

src/api/pydantic_models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@ class CustomerData(BaseModel):
2929
ProductCategory_tv: bool
3030
ProductCategory_utility_bill: bool
3131

32+
3233
class PredictionResponse(BaseModel):
3334
risk_probability: float

src/load.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,13 @@ def summary_stats(df):
2626

2727

2828
def logarithmic_numerical_distribution(
29-
df, columns=['Amount', 'Value', 'FraudResult']
29+
df,
30+
columns=None,
3031
):
32+
if columns is None:
33+
columns = ['Amount', 'Value', 'FraudResult']
34+
35+
3136
"""
3237
Plot log-scale histograms for positive and negative values of specified columns.
3338
"""

src/saveFile.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import pandas as pd
22

3-
# Define your output path
43
output_path = (
5-
r"C:\Users\ABC\Desktop\10Acadamy\Week 5\Credit-Risk-Probability-Model"
4+
r"C:\Users\ABC\Desktop\10Acadamy\Week 5"
5+
r"\Credit-Risk-Probability-Model"
66
r"\data\processed"
77
)
88

src/visualization.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import matplotlib.pyplot as plt
2-
import pandas as pd
32
import seaborn as sns
43

54

test/test_api.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import os
22
import sys
33
from unittest.mock import MagicMock, patch
4-
4+
from fastapi.testclient import TestClient
5+
from api.main import app # import AFTER patching
56

67
# Add src to sys.path for imports
78
sys.path.insert(0, os.path.abspath(os.path.join(
@@ -15,8 +16,6 @@
1516
patcher = patch('mlflow.sklearn.load_model', return_value=mock_model)
1617
patcher.start()
1718

18-
from fastapi.testclient import TestClient
19-
from api.main import app # import AFTER patching
2019

2120
client = TestClient(app)
2221

0 commit comments

Comments
 (0)