arbol / app.py
Si2469
Update app.py
448837f verified
raw
history blame contribute delete
No virus
1.76 kB
import pickle
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List
import numpy as np
# Cargar el modelo desde el archivo .pkl usando joblib
import joblib
# Define la estructura de entrada esperada para FastAPI
class InputData(BaseModel):
Gender: int
Age: float
PlayTimeHours: float
InGamePurchases: int
SessionsPerWeek: int
AvgSessionDurationMinutes: int
PlayerLevel: int
AchievementsUnlocked: int
# Iniciar la aplicaci贸n FastAPI
app = FastAPI()
# Funci贸n para cargar el modelo guardado con joblib
def load_model():
with open('miarbol.pkl', 'rb') as f:
model = pickle.load(f)
return model
# Cargar el modelo al iniciar la aplicaci贸n
miarbol = load_model()
# Ruta de predicci贸n
@app.post("/predict/")
async def predict(data: InputData):
try:
# Convertir los datos de entrada en un array de NumPy para la predicci贸n
X_input = np.array([[data.Gender, data.Age, data.PlayTimeHours, data.InGamePurchases,
data.SessionsPerWeek, data.AvgSessionDurationMinutes,
data.PlayerLevel, data.AchievementsUnlocked]])
# Realizar la predicci贸n utilizando el modelo cargado
prediction = miarbol.predict(X_input)
# Retornar el resultado de la predicci贸n
return {"prediction": prediction[0]}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
# Ruta para verificar el estado de la API
@app.get("/status/")
async def status():
return {"status": "Modelo cargado y API en funcionamiento"}
# Ejemplo de c贸mo utilizar la API
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)