Rybeiro commited on
Commit
3c31a2c
·
verified ·
1 Parent(s): c3dbb72

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -21
app.py CHANGED
@@ -1,33 +1,37 @@
1
-
2
  import gradio as gr
3
  import joblib
4
  import numpy as np
5
  import os
6
 
7
- # Carrega o pipeline baseline (TF-IDF + LogisticRegression)
8
  MODEL_PATH = os.getenv("MODEL_PATH", "baseline_pipe.pkl")
9
 
10
- if not os.path.exists(MODEL_PATH):
11
- raise FileNotFoundError(f"Arquivo de modelo não encontrado: {MODEL_PATH}. Faça upload de baseline_pipe.pkl.")
12
-
13
- baseline = joblib.load(MODEL_PATH)
14
 
15
  def predict_sentiment(text: str):
16
- if not text or text.strip() == "":
17
- return {"predição": "n/a", "confiança": 0.0}
18
- proba = baseline.predict_proba([text])[0]
19
- pred = int(np.argmax(proba))
20
- label = "positivo" if pred == 1 else "negativo"
21
- conf = float(np.max(proba))
22
- return {"predição": label, "confiança": conf}
 
 
 
 
 
 
 
23
 
24
  demo = gr.Interface(
25
- fn=predict_sentiment,
26
- inputs=gr.Textbox(label="Digite uma avaliação de produto"),
27
- outputs=gr.JSON(label="Resultado"),
28
- title="Análise de Sentimentos (Amazon Polarity)",
29
- description="Pipeline TF-IDF + Regressão Logística. Faça upload de baseline_pipe.pkl gerado no notebook."
30
- )
31
 
32
- if __name__ == "__main__":
33
- demo.launch()
 
 
1
  import gradio as gr
2
  import joblib
3
  import numpy as np
4
  import os
5
 
 
6
  MODEL_PATH = os.getenv("MODEL_PATH", "baseline_pipe.pkl")
7
 
8
+ baseline = None
9
+ if os.path.exists(MODEL_PATH):
10
+ baseline = joblib.load(MODEL_PATH)
 
11
 
12
  def predict_sentiment(text: str):
13
+ if not text or text.strip() == "":
14
+ return {"predição": "n/a", "confiança":
15
+ 0.0}
16
+ if baseline is None:
17
+ # Mensagem amigável quando o modelo
18
+ ainda não foi enviado
19
+ return {"erro": "Modelo não encontrado.
20
+ Envie baseline_pipe.pkl nos Files do Space."}
21
+ proba = baseline.predict_proba([text])[0]
22
+ pred = int(np.argmax(proba))
23
+ label = "positivo" if pred == 1 else
24
+ "negativo"
25
+ conf = float(np.max(proba))
26
+ return {"predição": label, "confiança": conf}
27
 
28
  demo = gr.Interface(
29
+ fn=predict_sentiment,
30
+ inputs=gr.Textbox(label="Digite uma
31
+ avaliação de produto"),
32
+ outputs=gr.JSON(label="Resultado"),
33
+ title="Análise de Sentimentos (Amazon Polarity)",
34
+ description="Envie o arquivo baseline_pipe.pkl na aba Files para ativar o modelo." )
35
 
36
+ if_name_ == "_main
37
+ demo.launch()