Spaces:
Sleeping
Sleeping
| 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 | |
| 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 | |
| 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) | |