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)
|