Update app.py
Browse files
app.py
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
import pandas as pd
|
4 |
from pycaret.regression import load_model, predict_model
|
5 |
from fastapi import FastAPI
|
6 |
-
from pydantic import BaseModel,
|
7 |
import uvicorn
|
8 |
|
9 |
|
@@ -15,40 +15,40 @@ app = FastAPI(
|
|
15 |
)
|
16 |
|
17 |
|
18 |
-
model = load_model("
|
19 |
|
20 |
|
21 |
class InputModel(BaseModel):
|
22 |
-
state: str
|
23 |
-
statecode: int
|
24 |
-
year: int
|
25 |
-
price: float
|
26 |
-
eprice: float
|
27 |
-
oprice: float
|
28 |
-
lprice: float
|
29 |
-
heating: int
|
30 |
-
income: float
|
31 |
|
32 |
class OutputModel(BaseModel):
|
33 |
-
prediction: float
|
34 |
-
|
35 |
|
|
|
36 |
@app.post("/predict", response_model=OutputModel, summary="Prédire la Consommation de Gaz Naturel", description="Prédit la consommation de gaz naturel basée sur les paramètres fournis.")
|
37 |
def predict(data: InputModel):
|
38 |
"""
|
39 |
-
|
40 |
-
-
|
41 |
-
-
|
42 |
-
-
|
43 |
-
-
|
44 |
-
-
|
45 |
-
-
|
46 |
-
-
|
47 |
-
-
|
48 |
-
-
|
49 |
-
|
50 |
-
|
51 |
-
-
|
52 |
"""
|
53 |
data = pd.DataFrame([data.dict()])
|
54 |
predictions = predict_model(model, data=data)
|
|
|
3 |
import pandas as pd
|
4 |
from pycaret.regression import load_model, predict_model
|
5 |
from fastapi import FastAPI
|
6 |
+
from pydantic import BaseModel, Field
|
7 |
import uvicorn
|
8 |
|
9 |
|
|
|
15 |
)
|
16 |
|
17 |
|
18 |
+
model = load_model("api_gaz")
|
19 |
|
20 |
|
21 |
class InputModel(BaseModel):
|
22 |
+
state: str = Field(..., example="TX", description="État (par exemple, 'TX' pour Texas)")
|
23 |
+
statecode: int = Field(..., example=44, description="Code de l'état (par exemple, 44)")
|
24 |
+
year: int = Field(..., example=1980, description="Année (par exemple, 1980)")
|
25 |
+
price: float = Field(..., example=3.4, description="Prix du gaz naturel")
|
26 |
+
eprice: float = Field(..., example=4.87, description="Prix ajusté de l'énergie")
|
27 |
+
oprice: float = Field(..., example=37.92, description="Prix de l'énergie autre que le gaz naturel")
|
28 |
+
lprice: float = Field(..., example=3.21, description="Prix du gaz naturel en dollars constants")
|
29 |
+
heating: int = Field(..., example=2145, description="Degrés-jours de chauffage")
|
30 |
+
income: float = Field(..., example=11393.46, description="Revenu moyen")
|
31 |
|
32 |
class OutputModel(BaseModel):
|
33 |
+
prediction: float = Field(..., example=224800, description="Prédiction de la consommation de gaz naturel")
|
|
|
34 |
|
35 |
+
# Define predict function
|
36 |
@app.post("/predict", response_model=OutputModel, summary="Prédire la Consommation de Gaz Naturel", description="Prédit la consommation de gaz naturel basée sur les paramètres fournis.")
|
37 |
def predict(data: InputModel):
|
38 |
"""
|
39 |
+
Paramètres d'entrée :
|
40 |
+
- state : État (par exemple, 'TX' pour Texas)
|
41 |
+
- statecode : Code de l'état (par exemple, 44)
|
42 |
+
- year : Année (par exemple, 1980)
|
43 |
+
- price : Prix du gaz naturel
|
44 |
+
- eprice : Prix ajusté de l'énergie
|
45 |
+
- oprice : Prix de l'énergie autre que le gaz naturel
|
46 |
+
- lprice : Prix du gaz naturel en dollars constants
|
47 |
+
- heating : Degrés-jours de chauffage
|
48 |
+
- income : Revenu moyen
|
49 |
+
|
50 |
+
Sortie :
|
51 |
+
- prediction : Prédiction de la consommation de gaz naturel
|
52 |
"""
|
53 |
data = pd.DataFrame([data.dict()])
|
54 |
predictions = predict_model(model, data=data)
|