Gazconso / app.py
Docfile's picture
Update app.py
c391ba7 verified
raw
history blame
1.73 kB
# -*- 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]}