import gradio as gr import joblib import numpy as np import os # Carrega o pipeline baseline (TF-IDF + LogisticRegression) 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()