modif app
Browse files
app.py
CHANGED
|
@@ -39,15 +39,49 @@ lat float Latitude du domicile
|
|
| 39 |
long float Longitude du domicile
|
| 40 |
city_pop int Population de la ville
|
| 41 |
job string Profession du client
|
| 42 |
-
dob string (YYYY-MM-DD) Date de naissance du client
|
| 43 |
merch_lat float Latitude du commerçant
|
| 44 |
merch_long float Longitude du commerçant
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
""",
|
| 47 |
version="1.0"
|
| 48 |
)
|
| 49 |
|
| 50 |
# === Schéma attendu pour l'entrée ===
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
# === Configuration S3 ===
|
| 53 |
S3_BUCKET = os.getenv("S3_BUCKET")
|
|
@@ -76,7 +110,7 @@ def home():
|
|
| 76 |
return {"message": "Bienvenue sur l'API Fraude détéction - Utilisez /predict pour faire une prédiction"}
|
| 77 |
|
| 78 |
@app.post("/predict")
|
| 79 |
-
def predict(data:
|
| 80 |
try:
|
| 81 |
# Convertir les données en DataFrame avec colonnes correctes
|
| 82 |
df = pd.DataFrame([data.dict()])
|
|
|
|
| 39 |
long float Longitude du domicile
|
| 40 |
city_pop int Population de la ville
|
| 41 |
job string Profession du client
|
|
|
|
| 42 |
merch_lat float Latitude du commerçant
|
| 43 |
merch_long float Longitude du commerçant
|
| 44 |
+
year int Année de la transaction
|
| 45 |
+
month int Mois de la transaction
|
| 46 |
+
day int Jour de la transaction
|
| 47 |
+
hour int Heure de la transaction
|
| 48 |
+
minute int Minute de la transaction
|
| 49 |
+
second int Seconde de la transaction
|
| 50 |
+
dob_year : int année de naissance
|
| 51 |
+
dob_month : int mois de naissance
|
| 52 |
+
dob_day : int jour de naissance
|
| 53 |
""",
|
| 54 |
version="1.0"
|
| 55 |
)
|
| 56 |
|
| 57 |
# === Schéma attendu pour l'entrée ===
|
| 58 |
+
class InputData(BaseModel):
|
| 59 |
+
cc_num: int
|
| 60 |
+
merchant: str
|
| 61 |
+
category: str
|
| 62 |
+
amt: float
|
| 63 |
+
first: str
|
| 64 |
+
last: str
|
| 65 |
+
gender: Literal["M", "F"]
|
| 66 |
+
street: str
|
| 67 |
+
city: str
|
| 68 |
+
state: str
|
| 69 |
+
zip: int
|
| 70 |
+
lat: float
|
| 71 |
+
long: float
|
| 72 |
+
city_pop: int
|
| 73 |
+
job: str
|
| 74 |
+
merch_lat: float
|
| 75 |
+
merch_long: float
|
| 76 |
+
year : int
|
| 77 |
+
month : int
|
| 78 |
+
day : int
|
| 79 |
+
hour : int
|
| 80 |
+
minute : int
|
| 81 |
+
second : int
|
| 82 |
+
dob_year : int
|
| 83 |
+
dob_month : int
|
| 84 |
+
dob_day : int
|
| 85 |
|
| 86 |
# === Configuration S3 ===
|
| 87 |
S3_BUCKET = os.getenv("S3_BUCKET")
|
|
|
|
| 110 |
return {"message": "Bienvenue sur l'API Fraude détéction - Utilisez /predict pour faire une prédiction"}
|
| 111 |
|
| 112 |
@app.post("/predict")
|
| 113 |
+
def predict(data: InputData):
|
| 114 |
try:
|
| 115 |
# Convertir les données en DataFrame avec colonnes correctes
|
| 116 |
df = pd.DataFrame([data.dict()])
|