File size: 1,753 Bytes
350218f 72a9148 350218f |
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# -*- coding: utf-8 -*-
import pandas as pd
from pycaret.regression import load_model, predict_model
from fastapi import FastAPI
from pydantic import BaseModel, create_model
import uvicorn
app = FastAPI(
title="API de Prédiction de la Consommation de Gaz Naturel",
description="Cette API permet de prédire la consommation de gaz naturel basée sur plusieurs paramètres tels que l'état, le code de l'état, l'année, les prix de l'énergie, les degrés-jours de chauffage et le revenu.",
version="1.0.0",
docs_url="/docs"
)
model = load_model("best_pipeline")
class InputModel(BaseModel):
state: str
statecode: int
year: int
price: float
eprice: float
oprice: float
lprice: float
heating: int
income: float
class OutputModel(BaseModel):
prediction: float
@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.")
def predict(data: InputModel):
"""
#Paramètres d'entrée :
- *state* : État (par exemple, 'TX' pour Texas)
- *statecode* : Code de l'état (par exemple, 44)
- *year* : Année (par exemple, 1980)
- *price* : Prix du gaz naturel
- *eprice* : Prix ajusté de l'énergie
- *oprice* : Prix de l'énergie autre que le gaz naturel
- *lprice* : Prix du gaz naturel en dollars constants
- *heating* : Degrés-jours de chauffage
- *income* : Revenu moyen
#Sortie :
- *prediction* : Prédiction de la consommation de gaz naturel
"""
data = pd.DataFrame([data.dict()])
predictions = predict_model(model, data=data)
return {"prediction": predictions["prediction_label"].iloc[0]}
|