File size: 1,380 Bytes
9ca0b5a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d41fe96
9ca0b5a
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
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from app.services.prediction import predict
router = APIRouter()

# Modèle de validation Pydantic pour les données entrantes
class InputData(BaseModel):
    NumberofFloors: int
    NumberofBuildings: float
    GFAPerFloor: float
    PropertyGFATotal: int
    GFA_Prison_Incarceration: float  
    GFA_College_University: float
    GFA_Office: float
    GFA_Parking: float
    GFA_Medical_Office: float
    GFA_Indoor_Arena: float
    GFA_Hospital_General_Medical_Surgical: float
    GFA_Data_Center: float
    GFA_Laboratory: float
    GFA_Supermarket_Grocery_Store: float
    GFA_Urgent_Care_Clinic_Other_Outpatient: float
    BuildingType_Nonresidential_WA: float
    ZipCode_infrequent_sklearn: float
    EPAPropertyType_infrequent_sklearn: float

class OutputData(BaseModel):
    prediction: float

@router.post("/predict", response_model=OutputData)
def make_prediction(data: InputData):
    try:
        result = predict(data)
        return {"prediction": result}
    except ValueError as ve:
        # Erreur liée aux features manquantes ou mal formées
        raise HTTPException(status_code=422, detail=str(ve))
    except Exception as e:
        # Autres erreurs inattendues
        #return {"error": str(e)}
        raise HTTPException(status_code=500, detail="Erreur interne du serveur")