|
|
|
|
|
|
|
|
|
|
|
from fastapi import FastAPI, HTTPException
|
|
|
from pydantic import BaseModel
|
|
|
import pandas as pd
|
|
|
import joblib
|
|
|
from huggingface_hub import hf_hub_download
|
|
|
|
|
|
|
|
|
app = FastAPI(title="Exoplanet Classifier API")
|
|
|
|
|
|
|
|
|
model_path = hf_hub_download(
|
|
|
repo_id="Edalexan/ia-pkl",
|
|
|
filename="exoplanet_model.pkl"
|
|
|
)
|
|
|
model = joblib.load(model_path)
|
|
|
|
|
|
|
|
|
class InputData(BaseModel):
|
|
|
|
|
|
feature1: float
|
|
|
feature2: float
|
|
|
feature3: float
|
|
|
|
|
|
@app.get("/")
|
|
|
def home():
|
|
|
return {"message": "API do classificador de exoplanetas online."}
|
|
|
|
|
|
@app.post("/predict")
|
|
|
def predict(input_data: InputData):
|
|
|
try:
|
|
|
|
|
|
df = pd.DataFrame([input_data.dict()])
|
|
|
pred = model.predict(df)[0]
|
|
|
prob = model.predict_proba(df)[0][1]
|
|
|
return {"prediction": int(pred), "probability": float(prob)}
|
|
|
except Exception as e:
|
|
|
raise HTTPException(status_code=400, detail=str(e))
|
|
|
|
|
|
|
|
|
|