|
|
| import gradio as gr |
| import joblib |
| import numpy as np |
| import os |
|
|
| |
| MODEL_PATH = os.getenv("MODEL_PATH", "baseline_pipe.pkl") |
|
|
| if not os.path.exists(MODEL_PATH): |
| raise FileNotFoundError(f"Arquivo de modelo não encontrado: {MODEL_PATH}. Faça upload de baseline_pipe.pkl.") |
|
|
| baseline = joblib.load(MODEL_PATH) |
|
|
| def predict_sentiment(text: str): |
| if not text or text.strip() == "": |
| return {"predição": "n/a", "confiança": 0.0} |
| proba = baseline.predict_proba([text])[0] |
| pred = int(np.argmax(proba)) |
| label = "positivo" if pred == 1 else "negativo" |
| conf = float(np.max(proba)) |
| return {"predição": label, "confiança": conf} |
|
|
| demo = gr.Interface( |
| fn=predict_sentiment, |
| inputs=gr.Textbox(label="Digite uma avaliação de produto"), |
| outputs=gr.JSON(label="Resultado"), |
| title="Análise de Sentimentos (Amazon Polarity)", |
| description="Pipeline TF-IDF + Regressão Logística. Faça upload de baseline_pipe.pkl gerado no notebook." |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch() |
|
|